We will review some important formatting processes for geodataframes. As usual, let's do this:
Let's read _Brazil5641.gpkg from the GitHub link with the help of geopandas:
import os
import geopandas as gpd
from fiona import listlayers
#maps
brazilMaps='https://github.com/CienciaDeDatosEspacial/geodfprepro/raw/main/maps/brazilMaps_5641.gpkg'
#layers in maps
listlayers(brazilMaps)
['country', 'cities', 'rivers']
Retrieving each map (layer):
brazil=gpd.read_file(brazilMaps,layer='country')
brazil_cities=gpd.read_file(brazilMaps,layer='cities')
brazil_rivers=gpd.read_file(brazilMaps,layer='rivers')
We know they share the same CRS:
brazil.crs.to_epsg()==brazil_cities.crs.to_epsg()==brazil_rivers.crs.to_epsg()
True
We also remember that having the same CRS allows one plot with several layers of maps:
# plotting tinee que tner el mismo cr para que cada layer salga encima de otro ene la psoicion correcta
base = brazil.plot(facecolor="greenyellow")
brazil_rivers.plot(edgecolor='blue', linewidth=0.5,ax=base)
brazil_cities.plot(marker='+', color='red', markersize=15,ax=base)
<Axes: >
Now, let's see some important spatial operations:
You know brazil_5641 is a multipolygon:
brazil
| COUNTRY | geometry | |
|---|---|---|
| 0 | Brazil | MULTIPOLYGON (((1926257.542 8894978.397, 19262... |
Sometime, you just need the border (lines):
brazil.boundary #por eso es multistring porque estoy pidiendo que gurade el borde del poligono
#me da un valor es como un dao el excel, es como que me da un valor dame la media y me da 3.5
#son diefentes estrcuturas de datas y por elllo aplicaremos cierto tipo de funciones dependiedno de la estrcutura
0 MULTILINESTRING ((1926257.542 8894978.397, 192... dtype: geometry
# This is just the borderline
brazil.boundary.plot()
<Axes: >
Always check the data type:
# does 'boundary' return a GDF?
type(brazil.boundary)
geopandas.geoseries.GeoSeries
Some operations in geopandas require GDF or GS. If you need a GDF instead of a GS:
# converting into GDF
brazil.boundary.to_frame() #aqui lo he convertido en una tabla geodataframe
#esto es un gdf a partir de una geoseries
#le puedo decri a pyhton datos cual es la columna que tiene datos geometricos indepedneitemente de su nombre 'geometrías'
#por si acaso la geometria es 'geometrías'
#me asegruo de decirle cual es la geometria
| 0 | |
|---|---|
| 0 | MULTILINESTRING ((1926257.542 8894978.397, 192... |
Notice you get a very simple GDF, and you may want to add some information:
# conversion
brazil_border=brazil.boundary.to_frame()
# new column (optional)
brazil_border['name']='Brazil'
# renaming the geometry column
brazil_border.rename(columns={0:'geometry'},inplace=True)
#setting the geometry (the name is not enough)
brazil_border = brazil_border.set_geometry("geometry")
# verifying:
brazil_border.crs
<Projected CRS: EPSG:5641> Name: SIRGAS 2000 / Brazil Mercator Axis Info [cartesian]: - X[east]: Easting (metre) - Y[north]: Northing (metre) Area of Use: - name: Brazil - offshore - equatorial margin. - bounds: (-51.64, -5.74, -32.43, 7.04) Coordinate Operation: - name: Petrobras Mercator - method: Mercator (variant B) Datum: Sistema de Referencia Geocentrico para las AmericaS 2000 - Ellipsoid: GRS 1980 - Prime Meridian: Greenwich
You see you multistring:
brazil_border #en la tarea tine que parecere tal cual asi geometry name y multistring
| geometry | name | |
|---|---|---|
| 0 | MULTILINESTRING ((1926257.542 8894978.397, 192... | Brazil |
You can add this GDF as a layer:
Reprojecting seems a simple process, but you might find some interesting cases. Let's read the maps on states and municipalities: y ambos son poligonos
brazil_states=gpd.read_file(os.path.join("maps","bra_adm_ibge_2020_shp","bra_admbnda_adm1_ibge_2020.shp"))
brazil_municipalities=gpd.read_file(os.path.join("maps","bra_adm_ibge_2020_shp","bra_admbnda_adm2_ibge_2020.shp"))
Notice this:
brazil_states.crs, brazil_municipalities.crs
(None, None)
They do not have crs information, however they can be plotted:
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(ncols=2, sharex=False, sharey=False, figsize=(12,12))
brazil_states.plot(ax=ax1, facecolor='pink', edgecolor='brown')
brazil_municipalities.plot(ax=ax2, facecolor='pink', edgecolor='black',linewidth=0.2)
<Axes: >
Since we are using the crs 5641 for Brazil, the initial strategy could be to set the CRS with the right projection :
brazil_states.to_crs(5641)
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[23], line 1 ----> 1 brazil_states.to_crs(5641) File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1425, in GeoDataFrame.to_crs(self, crs, epsg, inplace) 1423 else: 1424 df = self.copy() -> 1425 geom = df.geometry.to_crs(crs=crs, epsg=epsg) 1426 df.geometry = geom 1427 if not inplace: File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geoseries.py:1157, in GeoSeries.to_crs(self, crs, epsg) 1078 def to_crs( 1079 self, crs: Optional[Any] = None, epsg: Optional[int] = None 1080 ) -> GeoSeries: 1081 """Returns a ``GeoSeries`` with all geometries transformed to a new 1082 coordinate reference system. 1083 (...) 1154 1155 """ 1156 return GeoSeries( -> 1157 self.values.to_crs(crs=crs, epsg=epsg), index=self.index, name=self.name 1158 ) File C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\array.py:855, in GeometryArray.to_crs(self, crs, epsg) 786 """Returns a ``GeometryArray`` with all geometries transformed to a new 787 coordinate reference system. 788 (...) 852 853 """ 854 if self.crs is None: --> 855 raise ValueError( 856 "Cannot transform naive geometries. " 857 "Please set a crs on the object first." 858 ) 859 if crs is not None: 860 crs = CRS.from_user_input(crs) ValueError: Cannot transform naive geometries. Please set a crs on the object first.
Python says "Please set a crs on the object first". This would mean to know the actual projection, of the geometry:
brazil_states.geometry.head()
0 MULTIPOLYGON (((-68.87747 -11.01987, -68.88027... 1 POLYGON ((-35.46317 -8.82467, -35.46457 -8.828... 2 MULTIPOLYGON (((-50.46147 2.11133, -50.45627 2... 3 MULTIPOLYGON (((-58.49367 -0.84197, -58.48917 ... 4 MULTIPOLYGON (((-38.70687 -17.96447, -38.70867... Name: geometry, dtype: geometry
From the plots above and the previous rows, we conclude the maps are unprojected map; then:
brazil_states.crs = "EPSG:4326"
brazil_municipalities.crs = "EPSG:4326"
Now, we can reproject:
brazil_states=brazil_states.to_crs(5641)
brazil_municipalities=brazil_municipalities.to_crs(5641)
You will get Lines and Polygons as maps for sure, but that may not be the case with points. These points came as a CSV file:
import pandas as pd
infoairports=pd.read_csv(os.path.join("data","br-airports.csv"))
# see
infoairports
#EL QUE TENGA CORRDENADAS NO LO HAVE UN OBEJTO ESPACIAL
#Es importante porque en algun momneto mr van a dar coordenadas y tengo que saber como convetir
| id | ident | type | name | latitude_deg | longitude_deg | elevation_ft | continent | country_name | iso_country | ... | municipality | scheduled_service | gps_code | iata_code | local_code | home_link | wikipedia_link | keywords | score | last_updated | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | #meta +id | #meta +code | #loc +airport +type | #loc +airport +name | #geo +lat | #geo +lon | #geo +elevation +ft | #region +continent +code | #country +name | #country +code +iso2 | ... | #loc +municipality +name | #status +scheduled | #loc +airport +code +gps | #loc +airport +code +iata | #loc +airport +code +local | #meta +url +airport | #meta +url +wikipedia | #meta +keywords | #meta +score | #date +updated |
| 1 | 5910 | SBGR | large_airport | Guarulhos - Governador André Franco Montoro In... | -23.431944 | -46.467778 | 2461 | SA | Brazil | BR | ... | São Paulo | 1 | SBGR | GRU | SP0002 | http://www.aeroportoguarulhos.net/ | https://en.wikipedia.org/wiki/S%C3%A3o_Paulo-G... | Cumbica | 1016675 | 2021-10-28T15:52:55+00:00 |
| 2 | 5906 | SBGL | large_airport | Rio Galeão – Tom Jobim International Airport | -22.809999 | -43.250557 | 28 | SA | Brazil | BR | ... | Rio De Janeiro | 1 | SBGL | GIG | RJ0001 | NaN | https://en.wikipedia.org/wiki/Rio_de_Janeiro-G... | Galeão - Antônio Carlos Jobim International Ai... | 51475 | 2021-10-14T18:09:35+00:00 |
| 3 | 5974 | SBSP | medium_airport | Congonhas Airport | -23.627657 | -46.654601 | 2631 | SA | Brazil | BR | ... | São Paulo | 1 | SBSP | CGH | SP0001 | http://www.infraero.gov.br/usa/aero_prev_home.... | https://en.wikipedia.org/wiki/Congonhas-S%C3%A... | http://www.infraero.gov.br/usa/aero_prev_home.... | 750 | 2022-05-03T20:10:35+00:00 |
| 4 | 5967 | SBRJ | medium_airport | Santos Dumont Airport | -22.9105 | -43.163101 | 11 | SA | Brazil | BR | ... | Rio de Janeiro | 1 | SBRJ | SDU | RJ0002 | https://www4.infraero.gov.br/aeroportos/aeropo... | https://en.wikipedia.org/wiki/Santos_Dumont_Ai... | RIO | 750 | 2022-03-28T23:27:00+00:00 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 6862 | 309669 | SSVR | closed | Volta Redonda Airport | -22.4978 | -44.085 | 1245 | SA | Brazil | BR | ... | Volta Redonda | 0 | NaN | NaN | NaN | NaN | NaN | SSVR, SSVR, QVR | 0 | 2013-09-28T14:52:12+00:00 |
| 6863 | 505308 | BR-1760 | heliport | Unimed Volta Redonda Helipad | -22.533988 | -44.076918 | 1385 | SA | Brazil | BR | ... | Volta Redonda | 0 | SSKV | NaN | RJ0147 | NaN | NaN | NaN | 0 | 2022-12-06T21:28:25+00:00 |
| 6864 | 341727 | BR-1429 | heliport | Santa Helena Heliport | -23.59851 | -47.441196 | 2254 | SA | Brazil | BR | ... | Votorantim | 0 | SWHE | NaN | SP0807 | NaN | NaN | NaN | 0 | 2021-03-07T10:30:07+00:00 |
| 6865 | 343017 | BR-1493 | heliport | Bandeiras Centro Empresarial Heliport | -23.536615 | -47.449475 | 1827 | SA | Brazil | BR | ... | Votorantim | 0 | SWST | NaN | SP1306 | NaN | NaN | NaN | 0 | 2021-04-14T20:12:01+00:00 |
| 6866 | 509863 | SN3D | heliport | Alphaville Nova Esplanada 2 Heliport | -23.558971 | -47.473779 | 2083 | SA | Brazil | BR | ... | Votorantim | 0 | SN3D | NaN | SP1453 | NaN | NaN | NaN | 0 | 2023-06-30T14:01:13+00:00 |
6867 rows × 23 columns
This needs some cleaning, as the first row has column names, and some columns are not needed:
# bye first row
infoairports.drop(index=0,inplace=True)
infoairports.reset_index(drop=True, inplace=True)
# keep the columns needed
keep=['name','type','latitude_deg', 'longitude_deg','elevation_ft','region_name','municipality']
infoairports=infoairports.loc[:,keep]
infoairports.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 6866 entries, 0 to 6865 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 6866 non-null object 1 type 6866 non-null object 2 latitude_deg 6866 non-null object 3 longitude_deg 6866 non-null object 4 elevation_ft 6696 non-null object 5 region_name 6866 non-null object 6 municipality 6842 non-null object dtypes: object(7) memory usage: 375.6+ KB
Some formatting is needed, because numeric data columns are not the right type:
numericCols=['latitude_deg', 'longitude_deg','elevation_ft']
infoairports[numericCols]=infoairports.loc[:,numericCols].apply(lambda x:pd.to_numeric(x))
# now
infoairports.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 6866 entries, 0 to 6865 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 name 6866 non-null object 1 type 6866 non-null object 2 latitude_deg 6866 non-null float64 3 longitude_deg 6866 non-null float64 4 elevation_ft 6696 non-null float64 5 region_name 6866 non-null object 6 municipality 6842 non-null object dtypes: float64(3), object(4) memory usage: 375.6+ KB
# let's plot
base = brazil.plot(color='green', edgecolor='black') #unprojected
infoairports.plot.scatter(x = 'longitude_deg', y = 'latitude_deg',ax=base)
<Axes: xlabel='longitude_deg', ylabel='latitude_deg'>
We get it wrong because coordinates of both do not match. Let's try this:
airports=gpd.GeoDataFrame(data=infoairports.copy(),
geometry=gpd.points_from_xy(infoairports.longitude_deg,
infoairports.latitude_deg),
crs=4326)# the coordinates were in degrees - unprojected
#simepre q alg diga longitud latitud es q est a no protyecatdi
#e 5341 es la proyeccion del mapa de brasil
airports=airports.to_crs(5641)
Does it look better?
# let's plot
base = brazil.plot(color='white', edgecolor='green')
airports.plot(ax=base,markersize=1)
<Axes: >
Now we have a spatial points: wiii
#remember:
type(airports), type(infoairports)
(geopandas.geodataframe.GeoDataFrame, pandas.core.frame.DataFrame)
Remember you have type of airports:
airports['type'].value_counts() # this will not work: airports.type.value_counts()
#recomendacon es no ponerle type como nmbre de columna porque de por si type es una funcion q te indica el tipo de dato
type small_airport 4713 heliport 1745 closed 272 medium_airport 124 large_airport 10 seaplane_base 2 Name: count, dtype: int64
We may use that in the future. For now, just give the type column a different name.
airports.rename(columns={'type':'kind'},inplace=True)
Let's play with this:
from folium import LayerControl
m = airports[airports.kind=='small_airport'].explore(color="red",name="small",show=False)
m = airports[airports.kind=='medium_airport'].explore(m=m, color="blue",name="medium",show=False)
m = airports[airports.kind=='large_airport'].explore(m=m, color="black",name="large",show=True)
m = airports[airports.kind=='seaplane_base'].explore(m=m, color="green",name="seaplane",show=False)
m = airports[airports.kind=='closed'].explore(m=m, color="white",name="closed",show=False)
m = airports[airports.kind=='heliport'].explore(m=m, color="orange",name="heliport",show=False)
LayerControl(collapsed=False).add_to(m) #optional
m
#lo q se nos ocurra q sean puntos, buscar un csv que diga COORDINATES, ej. colegios, hospitales, aeropuertos
centroBrazil=brazil.centroid# es una geoserie es un valor calculado
centroBrazil
0 POINT (3884486.179 8756856.093) dtype: geometry
Notice:
type(centroBrazil), type(centroBrazil.x)
(geopandas.geoseries.GeoSeries, pandas.core.series.Series)
The previous values are complex structures, not simple values. Then:
type(centroBrazil.x[0]),type(centroBrazil.y[0])
#dependiendo de lo que me pide la funcion, si admite geoseries ponerle geoseries, avces puede funcionar con otro tipo de dato
#pero me puede mandar un warning y mejor ponerle su tipo de dato tla cual pide
(numpy.float64, numpy.float64)
Let me now subset using geopandas' cx, which does subsetting by location:
fig, axs = plt.subplots(nrows=2,ncols=2,sharex=False, sharey=False,figsize=(8,8))
centroidX=centroBrazil.x[0]
centroidY=centroBrazil.y[0]
axs[0,0].set_title('LeftOf_Centroid, Above_Centroid',fontsize=5)
brazil_municipalities.cx[:centroidX,centroidY:].plot(ax=axs[0,0])
axs[0,1].set_title('RightOf_Centroid, Above_Centroid',fontsize=5)
brazil_municipalities.cx[centroidX:,centroidY:].plot(ax=axs[0,1])
axs[1,0].set_title('LeftOf_Centroid, Below_Centroid',fontsize=5)
brazil_municipalities.cx[:centroidX,:centroidY].plot(ax=axs[1,0])
axs[1,1].set_title('RightOf_Centroid, Below_Centroid',fontsize=5)
brazil_municipalities.cx[centroidX:,:centroidY].plot(ax=axs[1,1]) ;
#profesor dijo que se puede poner con ciudades o con minucipapldfaed
You can create a polygon with one of these:
#instead of:
brazil_municipalities.cx[:centroidX,centroidY:]#el cx es de geopandas solo lo entiende geopandas , pandas no
#el cx necesita un valor
| ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | geometry | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Brazil | Brasil | BR | Rondônia | BR11 | Ariquemes | BR1100023 | 1 | POLYGON ((2839173.154 8911097.984, 2838718.204... |
| 3 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 | POLYGON ((2997393.730 8777661.276, 2997393.730... |
| 8 | Brazil | Brasil | BR | Rondônia | BR11 | Espigão D'Oeste | BR1100098 | 8 | POLYGON ((3057637.194 8777929.305, 3056978.535... |
| 9 | Brazil | Brasil | BR | Rondônia | BR11 | Guajará-Mirim | BR1100106 | 9 | MULTIPOLYGON (((2708460.048 8727087.796, 27089... |
| 10 | Brazil | Brasil | BR | Rondônia | BR11 | Jaru | BR1100114 | 10 | POLYGON ((2871236.909 8863979.571, 2871101.103... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5305 | Brazil | Brasil | BR | Mato Grosso | BR51 | São Félix do Araguaia | BR5107859 | 5305 | POLYGON ((3974265.397 8773180.057, 3974197.494... |
| 5310 | Brazil | Brasil | BR | Mato Grosso | BR51 | Tabaporã | BR5107941 | 5310 | POLYGON ((3505714.931 8812411.339, 3505972.962... |
| 5313 | Brazil | Brasil | BR | Mato Grosso | BR51 | Terra Nova do Norte | BR5108055 | 5313 | POLYGON ((3647944.371 8863821.903, 3657430.408... |
| 5321 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Guarita | BR5108808 | 5321 | POLYGON ((3638016.966 8872883.250, 3638098.449... |
| 5324 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Monte Verde | BR5108956 | 5324 | POLYGON ((3449722.190 8896410.060, 3449477.739... |
191 rows × 9 columns
# dissolving
brazil_municipalities.cx[:centroidX,centroidY:].dissolve()
| geometry | ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | MULTIPOLYGON (((2121072.695 8774540.983, 21207... | Brazil | Brasil | BR | Rondônia | BR11 | Ariquemes | BR1100023 | 1 |
The 191 rows from the previous GDF are now one, Notice that some columns may be meaningless. And the result is:
type(brazil_municipalities.cx[:centroidX,centroidY:].dissolve())
#algunas funcoines devuelven geoseries, esta devuelve un dataframe
geopandas.geodataframe.GeoDataFrame
As a GeoDF we can plot:
brazil_municipalities.cx[:centroidX,centroidY:].dissolve().plot(edgecolor='red')
<Axes: >
By default, dissolve combines all into one, but dissolving also allows combining by other column; for example:
# the municipalities by state
brazil_municipalities.cx[:centroidX,centroidY:].dissolve(by='ADM1_PT').plot(edgecolor='red')
#si no le idgo nada disucleve todo y si le digo disuelve por grupos junsta todas las geometrias
#los ha juntado por estados
<Axes: >
This operation is used to combine all the geometries in one GeoDF:
brazil_municipalities.cx[:centroidX,centroidY:].unary_union
It looks like dissolve default behaviour, but:
type(brazil_municipalities.cx[:centroidX,centroidY:].unary_union)
#normalenete uno hace algo para combinarlo con otras cosas
#entnces para eso necesitamos usar estrufruas conocidas
#o sea puede ser que este mapa que me arrojo se vea bien, pero mejor converetilo a una estructura concocida
#el unary union es una geometria y calcula rapido te devuleve shaping
shapely.geometry.multipolygon.MultiPolygon
The result is not a GeoDF. It is a shapely geometry. You could turn that into a GeoSeries:
gpd.GeoDataFrame(index=[0],
crs=brazil_municipalities.crs,
geometry=[brazil_municipalities.cx[:centroidX,centroidY:].unary_union])
#lo pongo como una lista por si hay mas geometrias
| geometry | |
|---|---|
| 0 | MULTIPOLYGON (((2121072.695 8774540.983, 21207... |
Notice that unary union erase all other columns; it only produces the geometry combined.
Let me use the dissolve this time:
# you create
Brazil_topLeft=brazil_municipalities.cx[:centroidX,centroidY:].dissolve()
# you get
Brazil_topLeft
#el disolve te devulve dataframe pero te agrag columnas q no sirven a vces
| geometry | ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | MULTIPOLYGON (((2121072.695 8774540.983, 21207... | Brazil | Brasil | BR | Rondônia | BR11 | Ariquemes | BR1100023 | 1 |
Aside from the ADM0_EN and geometry column, the rest is meaningless, then:
#por qué?
Brazil_topLeft['zone']='NW' # add column
Brazil_topLeft=Brazil_topLeft.loc[:,['ADM0_EN','zone','geometry']] # keep some
# result
Brazil_topLeft
| ADM0_EN | zone | geometry | |
|---|---|---|---|
| 0 | Brazil | NW | MULTIPOLYGON (((2121072.695 8774540.983, 21207... |
We can do the same with the other parts:
Brazil_topRight=brazil_municipalities.cx[centroidX:,centroidY:].dissolve()
Brazil_bottomLeft=brazil_municipalities.cx[:centroidX,:centroidY].dissolve()
Brazil_bottomRight=brazil_municipalities.cx[centroidX:,:centroidY].dissolve()
Brazil_topRight['zone']='NE'
Brazil_topRight=Brazil_topRight.loc[:,['ADM0_EN','zone','geometry']]
Brazil_bottomLeft['zone']='NE'
Brazil_bottomLeft=Brazil_bottomLeft.loc[:,['ADM0_EN','zone','geometry']]
Brazil_bottomRight['zone']='NE'
Brazil_bottomRight=Brazil_bottomRight.loc[:,['ADM0_EN','zone','geometry']]
Keep in mind that with CX you may not get a perfect partition:
brazil_municipalities
| ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | geometry | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | Brazil | Brasil | BR | Rondônia | BR11 | Alta Floresta D'Oeste | BR1100015 | 0 | POLYGON ((2880702.575 8678970.180, 2881137.154... |
| 1 | Brazil | Brasil | BR | Rondônia | BR11 | Ariquemes | BR1100023 | 1 | POLYGON ((2839173.154 8911097.984, 2838718.204... |
| 2 | Brazil | Brasil | BR | Rondônia | BR11 | Cabixi | BR1100031 | 2 | POLYGON ((3067184.343 8504324.153, 3067191.133... |
| 3 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 | POLYGON ((2997393.730 8777661.276, 2997393.730... |
| 4 | Brazil | Brasil | BR | Rondônia | BR11 | Cerejeiras | BR1100056 | 4 | POLYGON ((2974496.868 8540812.592, 2974897.495... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5567 | Brazil | Brasil | BR | Goiás | BR52 | Vianópolis | BR5222005 | 5567 | POLYGON ((4414833.073 8123005.730, 4414826.282... |
| 5568 | Brazil | Brasil | BR | Goiás | BR52 | Vicentinópolis | BR5222054 | 5568 | MULTIPOLYGON (((4227475.357 8023245.907, 42270... |
| 5569 | Brazil | Brasil | BR | Goiás | BR52 | Vila Boa | BR5222203 | 5569 | POLYGON ((4542830.062 8359934.818, 4543400.447... |
| 5570 | Brazil | Brasil | BR | Goiás | BR52 | Vila Propício | BR5222302 | 5570 | POLYGON ((4375754.947 8322581.505, 4376087.671... |
| 5571 | Brazil | Brasil | BR | Distrito Federal | BR53 | Brasília | BR5300108 | 5571 | POLYGON ((4513061.426 8221825.541, 4512959.571... |
5572 rows × 9 columns
Calculemos la diferencia:
# tuple with count of rows
rowsCX=(brazil_municipalities.cx[:centroBrazil.x[0],centroBrazil.y[0]:].shape[0],\
brazil_municipalities.cx[centroBrazil.x[0]:,centroBrazil.y[0]:].shape[0],\
brazil_municipalities.cx[:centroBrazil.x[0],:centroBrazil.y[0]].shape[0],\
brazil_municipalities.cx[centroBrazil.x[0]:,:centroBrazil.y[0]].shape[0])
sum(rowsCX)
#como hay cosas(municipalidades) q se repiten entonces al sumar salen menos 5753
5753
# coincidences:
len(set(brazil_municipalities.cx[:centroBrazil.x[0],centroBrazil.y[0]:].ADM2_PCODE). \
intersection(set(brazil_municipalities.cx[centroBrazil.x[0]:,centroBrazil.y[0]:].ADM2_PCODE)). \
intersection(set(brazil_municipalities.cx[:centroBrazil.x[0],:centroBrazil.y[0]].ADM2_PCODE)). \
intersection(set(brazil_municipalities.cx[centroBrazil.x[0]:,:centroBrazil.y[0]].ADM2_PCODE)))
1
Adding up all the rows, we have more municipalities:
brazil_municipalities.shape[0]
5572
There are some that are common:
base=Brazil_topLeft.plot(facecolor='grey', alpha=0.4)
Brazil_topRight.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_bottomLeft.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_bottomRight.plot(ax=base,facecolor='red', alpha=0.4)
<Axes: >
Some times you may have the need to create a polygon that serves as an envelope to a set of points:
Brazil_AirTopLeft=airports[airports.kind=='medium_airport'].cx[:centroidX,centroidY:]
Brazil_AirTopRight=airports[airports.kind=='medium_airport'].cx[centroidX:,centroidY:]
Brazil_AirBottomLeft=airports[airports.kind=='medium_airport'].cx[:centroidX,:centroidY]
Brazil_AirBottomRight=airports[airports.kind=='medium_airport'].cx[centroidX:,:centroidY]
base=Brazil_AirTopLeft.plot(facecolor='grey', alpha=0.4)
Brazil_AirTopRight.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_AirBottomLeft.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_AirBottomRight.plot(ax=base,facecolor='red', alpha=0.4)
<Axes: >
Notice we have simple points:
Brazil_AirBottomLeft
| name | kind | latitude_deg | longitude_deg | elevation_ft | region_name | municipality | geometry | |
|---|---|---|---|---|---|---|---|---|
| 8 | Cataratas International Airport | medium_airport | -25.594167 | -54.489444 | 786.0 | Paraná | Foz do Iguaçu | POINT (3721774.865 7071323.040) |
| 15 | Campo Grande Airport | medium_airport | -20.469998 | -54.673988 | 1833.0 | Mato Grosso do Sul | Campo Grande | POINT (3701243.952 7687543.733) |
| 22 | Marechal Rondon Airport | medium_airport | -15.652900 | -56.116699 | 617.0 | Mato Grosso | Cuiabá | POINT (3540739.278 8248021.581) |
| 52 | Coronel Adalberto Mendes da Silva Airport | medium_airport | -25.000323 | -53.501208 | 2481.0 | Paraná | Cascavel | POINT (3831718.226 7143997.144) |
| 71 | Maestro Marinho Franco Airport | medium_airport | -16.584292 | -54.724803 | 1467.0 | Mato Grosso | Rondonópolis | POINT (3695590.675 8140827.535) |
| 83 | Ponta Porã Airport | medium_airport | -22.549601 | -55.702599 | 2156.0 | Mato Grosso do Sul | Ponta Porã | POINT (3586808.785 7440288.417) |
| 85 | Santo Ângelo Airport | medium_airport | -28.282503 | -54.169623 | 1056.0 | Rio Grande do Sul | Santo Ângelo | POINT (3757355.633 6737578.539) |
| 90 | Brigadeiro Camarão Airport | medium_airport | -12.694400 | -60.098301 | 2018.0 | Rondônia | Vilhena | POINT (3097777.568 8585400.848) |
| 106 | Santa Maria Airport | medium_airport | -29.711399 | -53.688202 | 287.0 | Rio Grande do Sul | Santa Maria | POINT (3810914.745 6556752.132) |
| 149 | Corumbá International Airport | medium_airport | -19.011930 | -57.672772 | 463.0 | Mato Grosso do Sul | Corumbá | POINT (3367622.840 7858868.554) |
| 155 | Rubem Berta Airport | medium_airport | -29.782200 | -57.038200 | 256.0 | Rio Grande do Sul | Uruguaiana | POINT (3438220.327 6547725.745) |
| 244 | Comandante Gustavo Kraemer Airport | medium_airport | -31.390499 | -54.112202 | 600.0 | Rio Grande do Sul | Bagé | POINT (3763743.842 6340901.399) |
In this situation, you can not make a convex hull:
Brazil_AirBottomLeft.convex_hull.plot()
<Axes: >
You first need to dissolve, and then you create a hull, an envelope of convex angles:
Brazil_AirBottomLeft.dissolve().convex_hull.plot()
<Axes: >
As we saw, the convex hull is a polygon:
Brazil_AirBottomLeft.dissolve().convex_hull
0 POLYGON ((3763743.842 6340901.399, 3438220.327... dtype: geometry
We can make hulls from any spatial object:
# SW of Brazil as convex hull
Brazil_bottomLeft.convex_hull.plot()
<Axes: >
In this last case, what if we the polygons had not been previously combined?
brazil_municipalities.cx[:centroidX,:centroidY].convex_hull.plot(edgecolor='red')
<Axes: >
That is, you get a convex hull for each geometry.
We can also use union before creating a convex hull:
# just the union
large_airport=airports[airports.kind=='large_airport']
large_airport.unary_union
# hull of the union
large_airport.unary_union.convex_hull
Let's turn the GS into a GDF:
LargeAirport_hull= gpd.GeoDataFrame(index=[0],
crs=large_airport.crs,
geometry=[large_airport.unary_union.convex_hull])
LargeAirport_hull['name']='large airports hull' # optional
# then
LargeAirport_hull
| geometry | name | |
|---|---|---|
| 0 | POLYGON ((4382272.317 6814299.684, 3103184.311... | large airports hull |
Let's use the GDF in plotting:
base=brazil.plot(facecolor='yellow')
large_airport.plot(ax=base)
LargeAirport_hull.plot(ax=base,facecolor='green',
edgecolor='white',alpha=0.4,
hatch='X')
#como aptrapo en una geomtria ese es el convex hull, basicamente para un conjunto de coordendas encontrar lo que le envulve
#no puede dejar a nadie a fuera inclye a los que no son convex hull
#ls importancia es que nos ayuda a visulizar en donde estan la maypr cantidad e aeropuertos
<Axes: >
We might need to create or find some geometries from the geometries we already have. Using a set theory approach, we will se the use of intersection, union, difference, and symmetric difference.
Let me create this GeoDFs:
# the north
MunisN_brazil=brazil_municipalities.cx[:,centroidY:]
# the south
MunisS_brazil=brazil_municipalities.cx[:,:centroidY]
# the west
MunisW_brazil=brazil_municipalities.cx[:centroidX,:]
# the east
MunisE_brazil=brazil_municipalities.cx[centroidX:,:]
We keep what is common in both GeoDFs:
munisMidNS_brazil=MunisN_brazil.overlay(MunisS_brazil, how="intersection",keep_geom_type=True)
munisMidNS_brazil
C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1815: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead. merged_geom = block.unary_union
| ADM0_EN_1 | ADM0_PT_1 | ADM0_PCODE_1 | ADM1_PT_1 | ADM1_PCODE_1 | ADM2_PT_1 | ADM2_PCODE_1 | ET_ID_1 | ADM0_EN_2 | ADM0_PT_2 | ADM0_PCODE_2 | ADM1_PT_2 | ADM1_PCODE_2 | ADM2_PT_2 | ADM2_PCODE_2 | ET_ID_2 | geometry | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 | POLYGON ((2997393.730 8770664.256, 2997393.730... |
| 1 | Brazil | Brasil | BR | Rondônia | BR11 | Espigão D'Oeste | BR1100098 | 8 | Brazil | Brasil | BR | Rondônia | BR11 | Espigão D'Oeste | BR1100098 | 8 | POLYGON ((3056978.535 8777571.933, 3056645.811... |
| 2 | Brazil | Brasil | BR | Rondônia | BR11 | Presidente Médici | BR1100254 | 17 | Brazil | Brasil | BR | Rondônia | BR11 | Presidente Médici | BR1100254 | 17 | POLYGON ((2914558.967 8738429.583, 2915047.868... |
| 3 | Brazil | Brasil | BR | Rondônia | BR11 | Ministro Andreazza | BR1101203 | 37 | Brazil | Brasil | BR | Rondônia | BR11 | Ministro Andreazza | BR1101203 | 37 | POLYGON ((2943634.994 8778259.184, 2949854.901... |
| 4 | Brazil | Brasil | BR | Rondônia | BR11 | Vilhena | BR1100304 | 21 | Brazil | Brasil | BR | Rondônia | BR11 | Vilhena | BR1100304 | 21 | MULTIPOLYGON (((3064936.757 8679749.203, 30646... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 60 | Brazil | Brasil | BR | Mato Grosso | BR51 | Cláudia | BR5103056 | 5213 | Brazil | Brasil | BR | Mato Grosso | BR51 | Cláudia | BR5103056 | 5213 | MULTIPOLYGON (((3633698.340 8745495.507, 36341... |
| 61 | Brazil | Brasil | BR | Mato Grosso | BR51 | Itaúba | BR5104559 | 5236 | Brazil | Brasil | BR | Mato Grosso | BR51 | Itaúba | BR5104559 | 5236 | POLYGON ((3597587.572 8781564.662, 3598001.779... |
| 62 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Santa Helena | BR5106190 | 5258 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Santa Helena | BR5106190 | 5258 | POLYGON ((3708398.334 8822508.817, 3707916.224... |
| 63 | Brazil | Brasil | BR | Mato Grosso | BR51 | Feliz Natal | BR5103700 | 5226 | Brazil | Brasil | BR | Mato Grosso | BR51 | Feliz Natal | BR5103700 | 5226 | MULTIPOLYGON (((3771432.608 8649297.202, 37709... |
| 64 | Brazil | Brasil | BR | Mato Grosso | BR51 | Marcelândia | BR5105580 | 5249 | Brazil | Brasil | BR | Mato Grosso | BR51 | Marcelândia | BR5105580 | 5249 | POLYGON ((3876654.961 8801397.454, 3876573.477... |
65 rows × 17 columns
This is similar to a spatial join:
MunisN_brazil.sjoin(MunisS_brazil, how="inner", predicate='contains')
| ADM0_EN_left | ADM0_PT_left | ADM0_PCODE_left | ADM1_PT_left | ADM1_PCODE_left | ADM2_PT_left | ADM2_PCODE_left | ET_ID_left | geometry | index_right | ADM0_EN_right | ADM0_PT_right | ADM0_PCODE_right | ADM1_PT_right | ADM1_PCODE_right | ADM2_PT_right | ADM2_PCODE_right | ET_ID_right | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 | POLYGON ((2997393.730 8777661.276, 2997393.730... | 3 | Brazil | Brasil | BR | Rondônia | BR11 | Cacoal | BR1100049 | 3 |
| 8 | Brazil | Brasil | BR | Rondônia | BR11 | Espigão D'Oeste | BR1100098 | 8 | POLYGON ((3057637.194 8777929.305, 3056978.535... | 8 | Brazil | Brasil | BR | Rondônia | BR11 | Espigão D'Oeste | BR1100098 | 8 |
| 9 | Brazil | Brasil | BR | Rondônia | BR11 | Guajará-Mirim | BR1100106 | 9 | MULTIPOLYGON (((2708460.048 8727087.796, 27089... | 9 | Brazil | Brasil | BR | Rondônia | BR11 | Guajará-Mirim | BR1100106 | 9 |
| 11 | Brazil | Brasil | BR | Rondônia | BR11 | Ji-Paraná | BR1100122 | 11 | POLYGON ((2933666.847 8920914.042, 2933571.782... | 11 | Brazil | Brasil | BR | Rondônia | BR11 | Ji-Paraná | BR1100122 | 11 |
| 17 | Brazil | Brasil | BR | Rondônia | BR11 | Presidente Médici | BR1100254 | 17 | POLYGON ((2914898.482 8739124.549, 2914558.967... | 17 | Brazil | Brasil | BR | Rondônia | BR11 | Presidente Médici | BR1100254 | 17 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5247 | Brazil | Brasil | BR | Mato Grosso | BR51 | Luciara | BR5105309 | 5247 | POLYGON ((4154126.631 8815123.058, 4154004.406... | 5247 | Brazil | Brasil | BR | Mato Grosso | BR51 | Luciara | BR5105309 | 5247 |
| 5249 | Brazil | Brasil | BR | Mato Grosso | BR51 | Marcelândia | BR5105580 | 5249 | POLYGON ((3876675.331 8801946.860, 3876654.961... | 5249 | Brazil | Brasil | BR | Mato Grosso | BR51 | Marcelândia | BR5105580 | 5249 |
| 5258 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Santa Helena | BR5106190 | 5258 | POLYGON ((3708961.928 8822632.357, 3708398.334... | 5258 | Brazil | Brasil | BR | Mato Grosso | BR51 | Nova Santa Helena | BR5106190 | 5258 |
| 5305 | Brazil | Brasil | BR | Mato Grosso | BR51 | São Félix do Araguaia | BR5107859 | 5305 | POLYGON ((3974265.397 8773180.057, 3974197.494... | 5305 | Brazil | Brasil | BR | Mato Grosso | BR51 | São Félix do Araguaia | BR5107859 | 5305 |
| 5310 | Brazil | Brasil | BR | Mato Grosso | BR51 | Tabaporã | BR5107941 | 5310 | POLYGON ((3505714.931 8812411.339, 3505972.962... | 5310 | Brazil | Brasil | BR | Mato Grosso | BR51 | Tabaporã | BR5107941 | 5310 |
65 rows × 18 columns
# keeping the overlay
munisMidWE_brazil=MunisW_brazil.overlay(MunisE_brazil, how="intersection",keep_geom_type=True)
munisMidWE_brazil.plot(edgecolor='white',linewidth=0.1)
C:\ProgramData\anaconda3\envs\SDS_Mi_ambiente_Romina\Lib\site-packages\geopandas\geodataframe.py:1815: FutureWarning: `unary_union` returned None due to all-None GeoSeries. In future, `unary_union` will return 'GEOMETRYCOLLECTION EMPTY' instead. merged_geom = block.unary_union
<Axes: >
Let me unite the previous two GeoDFs. First, take a look at each one:
munisMidNS_brazil.info()
<class 'geopandas.geodataframe.GeoDataFrame'> RangeIndex: 65 entries, 0 to 64 Data columns (total 17 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ADM0_EN_1 65 non-null object 1 ADM0_PT_1 65 non-null object 2 ADM0_PCODE_1 65 non-null object 3 ADM1_PT_1 65 non-null object 4 ADM1_PCODE_1 65 non-null object 5 ADM2_PT_1 65 non-null object 6 ADM2_PCODE_1 65 non-null object 7 ET_ID_1 65 non-null int64 8 ADM0_EN_2 65 non-null object 9 ADM0_PT_2 65 non-null object 10 ADM0_PCODE_2 65 non-null object 11 ADM1_PT_2 65 non-null object 12 ADM1_PCODE_2 65 non-null object 13 ADM2_PT_2 65 non-null object 14 ADM2_PCODE_2 65 non-null object 15 ET_ID_2 65 non-null int64 16 geometry 65 non-null geometry dtypes: geometry(1), int64(2), object(14) memory usage: 8.8+ KB
munisMidWE_brazil.info()
<class 'geopandas.geodataframe.GeoDataFrame'> RangeIndex: 115 entries, 0 to 114 Data columns (total 17 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 ADM0_EN_1 115 non-null object 1 ADM0_PT_1 115 non-null object 2 ADM0_PCODE_1 115 non-null object 3 ADM1_PT_1 115 non-null object 4 ADM1_PCODE_1 115 non-null object 5 ADM2_PT_1 115 non-null object 6 ADM2_PCODE_1 115 non-null object 7 ET_ID_1 115 non-null int64 8 ADM0_EN_2 115 non-null object 9 ADM0_PT_2 115 non-null object 10 ADM0_PCODE_2 115 non-null object 11 ADM1_PT_2 115 non-null object 12 ADM1_PCODE_2 115 non-null object 13 ADM2_PT_2 115 non-null object 14 ADM2_PCODE_2 115 non-null object 15 ET_ID_2 115 non-null int64 16 geometry 115 non-null geometry dtypes: geometry(1), int64(2), object(14) memory usage: 15.4+ KB
The overlay combines the geometries, but not the attributes. Let me subset and show you:
keep=['ADM0_EN_1','ADM1_PT_1','ADM2_PT_1','geometry']
munisMidNS_brazil=munisMidNS_brazil.loc[:,keep]
munisMidWE_brazil=munisMidWE_brazil.loc[:,keep]
# now
munisMidNS_brazil.overlay(munisMidWE_brazil,how="union",keep_geom_type=True)
#creo otracolumna ha duplicado pero el union solo trabaja con geometrias
| ADM0_EN_1_1 | ADM1_PT_1_1 | ADM2_PT_1_1 | ADM0_EN_1_2 | ADM1_PT_1_2 | ADM2_PT_1_2 | geometry | |
|---|---|---|---|---|---|---|---|
| 0 | Brazil | Mato Grosso | São Félix do Araguaia | Brazil | Mato Grosso | São Félix do Araguaia | POLYGON ((3974842.572 8772389.594, 3975012.329... |
| 1 | Brazil | Rondônia | Cacoal | NaN | NaN | NaN | POLYGON ((2997393.730 8770664.256, 2997393.730... |
| 2 | Brazil | Rondônia | Espigão D'Oeste | NaN | NaN | NaN | POLYGON ((3056978.535 8777571.933, 3056645.811... |
| 3 | Brazil | Rondônia | Presidente Médici | NaN | NaN | NaN | POLYGON ((2914558.967 8738429.583, 2915047.868... |
| 4 | Brazil | Rondônia | Ministro Andreazza | NaN | NaN | NaN | POLYGON ((2943634.994 8778259.184, 2949854.901... |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 174 | NaN | NaN | NaN | Brazil | Mato Grosso | Pontal do Araguaia | POLYGON ((3915767.038 8240179.071, 3916215.197... |
| 175 | NaN | NaN | NaN | Brazil | Mato Grosso | Gaúcha do Norte | POLYGON ((3822074.600 8649214.391, 3822339.421... |
| 176 | NaN | NaN | NaN | Brazil | Mato Grosso | Querência | MULTIPOLYGON (((3915882.473 8591396.795, 39154... |
| 177 | NaN | NaN | NaN | Brazil | Mato Grosso | Tesouro | POLYGON ((3872193.739 8238559.612, 3872628.318... |
| 178 | NaN | NaN | NaN | Brazil | Mato Grosso | São José do Xingu | POLYGON ((3981564.960 8856938.657, 3981517.428... |
179 rows × 7 columns
As you see, geometries are fine, but not attributes. It is strictly NOT appending the GeoDFs:
# appending
pd.concat([munisMidNS_brazil,munisMidWE_brazil],ignore_index=True)
| ADM0_EN_1 | ADM1_PT_1 | ADM2_PT_1 | geometry | |
|---|---|---|---|---|
| 0 | Brazil | Rondônia | Cacoal | POLYGON ((2997393.730 8770664.256, 2997393.730... |
| 1 | Brazil | Rondônia | Espigão D'Oeste | POLYGON ((3056978.535 8777571.933, 3056645.811... |
| 2 | Brazil | Rondônia | Presidente Médici | POLYGON ((2914558.967 8738429.583, 2915047.868... |
| 3 | Brazil | Rondônia | Ministro Andreazza | POLYGON ((2943634.994 8778259.184, 2949854.901... |
| 4 | Brazil | Rondônia | Vilhena | MULTIPOLYGON (((3064936.757 8679749.203, 30646... |
| ... | ... | ... | ... | ... |
| 175 | Brazil | Mato Grosso | Gaúcha do Norte | POLYGON ((3822074.600 8649214.391, 3822339.421... |
| 176 | Brazil | Mato Grosso | Querência | MULTIPOLYGON (((3916636.195 8591168.612, 39162... |
| 177 | Brazil | Mato Grosso | São Félix do Araguaia | POLYGON ((3974197.494 8772623.298, 3974842.572... |
| 178 | Brazil | Mato Grosso | Tesouro | POLYGON ((3872193.739 8238559.612, 3872628.318... |
| 179 | Brazil | Mato Grosso | São José do Xingu | POLYGON ((3981632.863 8858364.779, 3981422.364... |
180 rows × 4 columns
You will append if you are interested in the keeping the attributes. But you just do the overlay if you are planing to combine final results:
munisMidNS_brazil.dissolve().overlay(munisMidWE_brazil.dissolve(), how="union",keep_geom_type=True).dissolve().plot()
<Axes: >
Let me create an object to save the previous result:
muniMidBrazil=munisMidNS_brazil.dissolve().overlay(munisMidWE_brazil.dissolve(), how="union",keep_geom_type=True).dissolve()
muniMidBrazil
| geometry | ADM0_EN_1_1 | ADM1_PT_1_1 | ADM2_PT_1_1 | ADM0_EN_1_2 | ADM1_PT_1_2 | ADM2_PT_1_2 | |
|---|---|---|---|---|---|---|---|
| 0 | MULTIPOLYGON (((3873395.621 6740520.149, 38739... | Brazil | Rondônia | Cacoal | Brazil | Pará | Almeirim |
# some cleaning
muniMidBrazil['zone']='middles'
muniMidBrazil=muniMidBrazil.loc[:,['ADM0_EN_1_1','zone','geometry']]
muniMidBrazil
| ADM0_EN_1_1 | zone | geometry | |
|---|---|---|---|
| 0 | Brazil | middles | MULTIPOLYGON (((3873395.621 6740520.149, 38739... |
Here, you keep what belongs to the GeoDF to left that is not in the GeoDF to the right:
# with the municipalities
brazil_municipalities.overlay(muniMidBrazil, how='difference').plot()
<Axes: >
# with the zones
Brazil_topLeft.overlay(muniMidBrazil, how='difference').plot()
<Axes: >
This is the opposite to intersection, you keep what is not in the intersection:
MunisN_brazil.overlay(MunisS_brazil, how="symmetric_difference",keep_geom_type=False).plot()
<Axes: >
MunisW_brazil.overlay(MunisE_brazil, how="symmetric_difference",keep_geom_type=False).plot()
<Axes: >
# hulls for the mid size airports:
Brazil_AirTopLeft_hull=Brazil_AirTopLeft.dissolve().convex_hull
Brazil_AirTopRight_hull=Brazil_AirTopRight.dissolve().convex_hull
Brazil_AirBottomLeft_hull=Brazil_AirBottomLeft.dissolve().convex_hull
Brazil_AirBottomRight_hull=Brazil_AirBottomRight.dissolve().convex_hull
base = brazil.plot(color='white', edgecolor='black') #unprojected
muniMidBrazil.plot(ax=base,facecolor='magenta',alpha=0.4) #unprojected
LargeAirport_hull.plot(ax=base,facecolor='purple',alpha=0.4)
Brazil_AirTopLeft_hull.plot(ax=base,facecolor='grey', alpha=0.4)
Brazil_AirTopRight_hull.plot(ax=base,facecolor='orange', alpha=0.4)
Brazil_AirBottomLeft_hull.plot(ax=base,facecolor='green', alpha=0.4)
Brazil_AirBottomRight_hull.plot(ax=base,facecolor='red', alpha=0.4)
<Axes: >
Geometries are created in a way that some issues may appear, especially in (multi) polygons. Let's check if our recent maps on states and municipalities are valid:
# non valid
brazil_municipalities[~brazil_municipalities.is_valid]
| ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | geometry | |
|---|---|---|---|---|---|---|---|---|---|
| 5 | Brazil | Brasil | BR | Rondônia | BR11 | Colorado do Oeste | BR1100064 | 5 | POLYGON ((3071557.291 8521541.630, 3071367.162... |
| 15 | Brazil | Brasil | BR | Rondônia | BR11 | Pimenta Bueno | BR1100189 | 15 | POLYGON ((3057168.663 8724320.552, 3056869.891... |
| 16 | Brazil | Brasil | BR | Rondônia | BR11 | Porto Velho | BR1100205 | 16 | POLYGON ((2856305.059 9048717.998, 2857038.410... |
| 22 | Brazil | Brasil | BR | Rondônia | BR11 | São Miguel do Guaporé | BR1100320 | 22 | POLYGON ((2753262.389 8765192.063, 2753595.113... |
| 36 | Brazil | Brasil | BR | Rondônia | BR11 | Itapuã do Oeste | BR1101104 | 36 | POLYGON ((2801256.168 9023884.917, 2801099.991... |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 5464 | Brazil | Brasil | BR | Goiás | BR52 | Matrinchã | BR5212956 | 5464 | POLYGON ((4141197.917 8313421.144, 4140885.563... |
| 5470 | Brazil | Brasil | BR | Goiás | BR52 | Monte Alegre de Goiás | BR5213509 | 5470 | POLYGON ((4616158.417 8544511.406, 4616233.111... |
| 5471 | Brazil | Brasil | BR | Goiás | BR52 | Montes Claros de Goiás | BR5213707 | 5471 | MULTIPOLYGON (((4066884.969 8218654.089, 40667... |
| 5496 | Brazil | Brasil | BR | Goiás | BR52 | Padre Bernardo | BR5215603 | 5496 | POLYGON ((4404321.702 8311359.407, 4404056.880... |
| 5512 | Brazil | Brasil | BR | Goiás | BR52 | Pontalina | BR5217708 | 5512 | POLYGON ((4263830.576 8058646.220, 4264122.559... |
256 rows × 9 columns
# see the invalid:
brazil_municipalities[~brazil_municipalities.is_valid].plot()
<Axes: >
It is difficult to see what is wrong. Let's get some information:
# what is wrong?
from shapely.validation import explain_validity, make_valid
explain_validity(brazil_municipalities[~brazil_municipalities.is_valid].geometry)
5 Ring Self-intersection[3068508.44978257 851673...
15 Ring Self-intersection[3065079.35271118 868017...
16 Ring Self-intersection[2697459.77578448 903418...
22 Ring Self-intersection[2708460.04757785 872708...
36 Ring Self-intersection[2793277.57533772 901160...
...
5464 Ring Self-intersection[4134149.59432842 826732...
5470 Ring Self-intersection[4579443.31264052 849053...
5471 Ring Self-intersection[4016405.94439198 821413...
5496 Ring Self-intersection[4404321.70180657 831135...
5512 Ring Self-intersection[4261277.42674537 804649...
Name: geometry, Length: 256, dtype: object
# varieties?
brazil_municipalities['validity']=[x.split('[')[0] for x in brazil_municipalities.geometry.apply(lambda x: explain_validity(x))]
brazil_municipalities['validity'].value_counts()
validity Valid Geometry 5316 Ring Self-intersection 256 Name: count, dtype: int64
# solving the issue:
brazil_municipalities.drop(columns=['validity'],inplace=True)
brazil_municipalities_valid=brazil_municipalities.copy()
brazil_municipalities_valid['geometry'] = [make_valid(row) if not row.is_valid else row for row in brazil_municipalities_valid['geometry'] ]
#any invalid?
brazil_municipalities_valid[~brazil_municipalities_valid.is_valid]
| ADM0_EN | ADM0_PT | ADM0_PCODE | ADM1_PT | ADM1_PCODE | ADM2_PT | ADM2_PCODE | ET_ID | geometry |
|---|
The solution we got may help for some advanced techniques, but may also give us some extra trouble. Notice that once geopandas solved the problem, you have created collections:
[x for x in brazil_municipalities_valid["geometry"]]
[<POLYGON ((2880702.575 8678970.18, 2881137.154 8678859.874, 2881660.006 8679...>, <POLYGON ((2839173.154 8911097.984, 2838718.204 8910885.753, 2838439.802 891...>, <POLYGON ((3067184.343 8504324.153, 3067191.133 8503935.715, 3066838.038 850...>, <POLYGON ((2997393.73 8777661.276, 2997393.73 8770664.256, 2997393.73 874828...>, <POLYGON ((2974496.868 8540812.592, 2974897.495 8540570.143, 2975467.879 854...>, <POLYGON ((3071367.162 8521146.506, 3071421.485 8520522.615, 3071278.889 852...>, <POLYGON ((3036268.147 8552904.635, 3035500.844 8552565.354, 3034896.508 855...>, <POLYGON ((2699327.106 8704013.071, 2699571.556 8703689.311, 2699659.83 8703...>, <POLYGON ((3057637.194 8777929.305, 3056978.535 8777571.933, 3056645.811 877...>, <MULTIPOLYGON (((2708460.048 8727087.796, 2708928.578 8727005.195, 2709071.1...>, <POLYGON ((2871236.909 8863979.571, 2871101.103 8863431.157, 2870931.346 886...>, <POLYGON ((2933666.847 8920914.042, 2933571.782 8920496.537, 2933789.072 892...>, <POLYGON ((2896999.274 9016600.705, 2899647.487 9016655.324, 2900340.097 901...>, <POLYGON ((2891125.672 8744030.161, 2890935.544 8743273.384, 2890881.221 874...>, <POLYGON ((2874761.07 8793553.686, 2873925.864 8791437.888, 2872581.387 8788...>, <POLYGON ((3056869.891 8723253.515, 3056469.263 8722923.071, 3056537.166 872...>, <POLYGON ((2857038.41 9047687.847, 2857262.49 9047360.376, 2857540.892 90471...>, <POLYGON ((2914898.482 8739124.549, 2914558.967 8738429.583, 2915047.868 873...>, <POLYGON ((2819413.406 8942412.693, 2831649.511 8942426.374, 2839207.105 894...>, <POLYGON ((2936396.544 8706995.636, 2936281.109 8706644.356, 2936029.868 870...>, <POLYGON ((2938440.421 8653920.446, 2933890.926 8653906.647, 2923882.037 865...>, <MULTIPOLYGON (((3065079.353 8680176.623, 3064936.757 8679749.203, 3064637.9...>, <POLYGON ((2753595.113 8765033.933, 2753961.789 8764800.175, 2754362.416 876...>, <POLYGON ((2625856.155 8889163.198, 2634255.745 8889149.497, 2634602.05 8888...>, <POLYGON ((2868418.938 8769110.687, 2868744.872 8768911.33, 2869118.338 8768...>, <POLYGON ((2898547.46 8667910.034, 2899002.41 8667572.098, 2899450.569 86672...>, <POLYGON ((2738602.15 8953342.055, 2738758.327 8952767.624, 2760996.531 8950...>, <POLYGON ((2698702.399 8907880.156, 2698539.432 8907441.962, 2698539.432 890...>, <POLYGON ((2880281.577 8720382.662, 2882305.084 8720396.432, 2884376.122 872...>, <POLYGON ((2811638.523 8856856.379, 2809112.534 8852557.082, 2802539.533 884...>, <POLYGON ((2716547.284 8861216.849, 2716893.589 8860880.92, 2717273.846 8860...>, <MULTIPOLYGON (((2793277.575 9011602.72, 2793827.589 9011411.528, 2793922.65...>, <POLYGON ((2908970.557 8731892.034, 2909092.783 8731203.793, 2909493.41 8731...>, <POLYGON ((3035731.714 8634580.833, 3032560.648 8634311.563, 3032696.454 863...>, <POLYGON ((2845080.707 9030178.196, 2845379.48 9029734.558, 2845399.851 9029...>, <POLYGON ((2751048.754 8834023.559, 2753785.242 8833900.061, 2756603.212 883...>, <POLYGON ((2801099.991 9023550.432, 2801493.828 9023277.381, 2801982.729 902...>, <POLYGON ((2940267.01 8778300.419, 2943634.994 8778259.184, 2949854.901 8778...>, <POLYGON ((2825144.412 8769358.163, 2822740.649 8767447.048, 2822496.199 876...>, <MULTIPOLYGON (((2749914.776 8834092.17, 2750193.177 8834407.775, 2750661.70...>, <POLYGON ((2847002.36 8788724.247, 2846771.49 8788421.954, 2845087.497 87862...>, <POLYGON ((2977335.209 8645156.374, 2977667.934 8644735.358, 2978034.609 864...>, <POLYGON ((2959368.099 8593153.054, 2959857 8593049.341, 2959558.227 8592717...>, <POLYGON ((2975956.78 8692500.289, 2976045.054 8692059.259, 2976214.811 8691...>, <POLYGON ((2951280.862 8692927.531, 2953874.753 8692886.185, 2953881.544 868...>, <POLYGON ((2710307.007 8682168.872, 2734025.494 8682051.685, 2733461.9 86813...>, <POLYGON ((2775167.869 8701223.114, 2775269.723 8700224.18, 2775690.721 8698...>, <POLYGON ((2861078.633 8792227.893, 2872581.387 8788105.918, 2872391.258 878...>, <POLYGON ((2891315.8 8894786.834, 2891050.979 8893697.794, 2890602.82 889262...>, <POLYGON ((2868901.049 8773784.92, 2869301.676 8773585.591, 2869654.771 8773...>, <POLYGON ((2928662.402 8964452.872, 2928017.324 8963714.529, 2927827.196 896...>, <POLYGON ((2889258.342 8881620.255, 2889434.889 8880880.262, 2889713.291 888...>, <POLYGON ((2359418.707 8905949.324, 2363024.352 8904353.914, 2369278.21 8901...>, <MULTIPOLYGON (((1971849.255 8812534.916, 1971448.628 8812672.223, 1971224.5...>, <MULTIPOLYGON (((2121072.695 8774540.983, 2120760.342 8774437.884, 2120461.5...>, <POLYGON ((2221209.12 8961677.178, 2220862.815 8961615.646, 2220441.817 8961...>, <POLYGON ((2259044.622 8848318.979, 2259044.622 8847907.485, 2258779.801 884...>, <POLYGON ((1765057.726 9156374.147, 1778359.906 9154815.642, 1779772.287 915...>, <POLYGON ((2175496.879 8772334.604, 2175286.38 8771750.336, 2174953.656 8771...>, <POLYGON ((2018254.105 9106196.577, 2038312.625 9089003.937, 2038591.027 908...>, <POLYGON ((1831195.162 9014340.763, 1831195.162 9013965.232, 1831229.114 901...>, <POLYGON ((1580307.482 9209489.7, 1581556.896 9209054.615, 1599286.346 92026...>, <MULTIPOLYGON (((2014417.591 8984061.655, 2014016.963 8983856.665, 2013657.0...>, <POLYGON ((1749881.425 9034730.325, 1756501.959 9033693.003, 1757669.889 903...>, <POLYGON ((2321481.35 8879105.587, 2321481.35 8876748.354, 2321481.35 887539...>, <MULTIPOLYGON (((1683519.909 9099117.263, 1683886.584 9098796.998, 1684042.7...>, <POLYGON ((2172285.071 8940305.796, 2172067.782 8939950.074, 2171904.815 893...>, <POLYGON ((1678135.208 9149404.709, 1682148.27 9148547.069, 1684049.551 9148...>, <GEOMETRYCOLLECTION (POLYGON ((2015062.668 8983453.514, 2014994.765 8983118....>, <POLYGON ((2314908.348 8925342.053, 2314548.463 8924904.066, 2314086.723 892...>, <POLYGON ((1991418.874 8820250.702, 1991065.779 8820387.978, 1990773.797 882...>, <POLYGON ((1842684.335 9147335.457, 1875094.395 9143564.283, 1888179.286 914...>, <POLYGON ((2214323.764 8845657.899, 2213889.186 8845218.939, 2213603.994 884...>, <POLYGON ((2221209.12 8961677.178, 2231910.619 8956925.218, 2232834.098 8956...>, <POLYGON ((2576171.594 9650917.382, 2576449.996 9650714.725, 2577040.751 964...>, <POLYGON ((2237166.304 9631325.506, 2235828.617 9630237.716, 2235237.861 962...>, <POLYGON ((2963897.223 9612791.008, 2964019.448 9612392.307, 2964352.173 961...>, <POLYGON ((2912032.979 9598362.46, 2912596.573 9598294.874, 2913397.827 9597...>, <MULTIPOLYGON (((3057372.372 9078806.465, 3057637.194 9078336.069, 3057481.0...>, <MULTIPOLYGON (((1941143.558 9359600.78, 1940763.302 9359899.092, 1940912.68...>, <POLYGON ((3229180.321 9607709.151, 3228141.406 9607290.157, 3227421.635 960...>, <MULTIPOLYGON (((2574867.858 9915504.918, 2574569.085 9915970.353, 2574969.7...>, <POLYGON ((3420530.728 9703522.244, 3420999.258 9703096.847, 3421501.739 970...>, <MULTIPOLYGON (((1941754.684 9361234.696, 1941870.119 9361709.27, 1942223.21...>, <POLYGON ((2992491.139 9577388.286, 2992151.625 9576468.912, 2992009.029 957...>, <POLYGON ((3403140.792 9678083.729, 3403317.339 9677806.828, 3403188.324 967...>, <POLYGON ((2200559.844 9098347.26, 2200627.747 9097788.489, 2200838.246 9097...>, <MULTIPOLYGON (((3175856.164 9327354.197, 3175645.665 9327788.336, 3175964.8...>, <POLYGON ((2943716.478 9691691.633, 2943825.122 9691137.891, 2943906.606 969...>, <MULTIPOLYGON (((2759916.875 9228154.04, 2759903.294 9228643.327, 2759862.55...>, <POLYGON ((2334600.193 9400165.027, 2333832.89 9398965.748, 2333187.812 9398...>, <POLYGON ((3122708.554 9635892.752, 3122321.508 9635541.432, 3122219.653 963...>, <POLYGON ((3180072.935 9651390.247, 3177275.335 9648303.08, 3179224.148 9647...>, <POLYGON ((2661994.085 9705743.742, 2662469.405 9705514.166, 2663026.209 970...>, <POLYGON ((2668431.281 9729759.293, 2668689.312 9728179.536, 2668499.184 972...>, <MULTIPOLYGON (((1846405.415 9150779.621, 1846778.881 9150677.525, 1846514.0...>, <POLYGON ((2049380.8 9204778.347, 2049469.074 9204098.462, 2051764.192 92022...>, <MULTIPOLYGON (((2441153.443 9700909.067, 2440868.251 9701185.918, 2440970.1...>, <POLYGON ((1767957.18 9213119.792, 1768004.712 9211671.866, 1767957.18 92024...>, <MULTIPOLYGON (((2887852.752 9107804.426, 2888002.138 9108247.255, 2888402.7...>, <MULTIPOLYGON (((1899070.913 9200698.896, 1899111.655 9200331.729, 1898901.1...>, <POLYGON ((3024561.685 9688044.994, 3026687.046 9686403.972, 3027332.124 968...>, <GEOMETRYCOLLECTION (POLYGON ((3214547.243 9712063.67, 3214581.195 9710868.5...>, <MULTIPOLYGON (((2288385.471 9240554.669, 2288650.292 9240391.611, 2288249.6...>, <POLYGON ((3328467.959 9707627.597, 3328834.635 9707472.299, 3329425.39 9707...>, <POLYGON ((2158663.747 9917407.129, 2159064.374 9917218.257, 2159444.631 991...>, <MULTIPOLYGON (((2309476.115 9564320.16, 2309401.422 9564915.128, 2309000.79...>, <MULTIPOLYGON (((2309903.904 9563508.833, 2310155.145 9563786.037, 2310223.0...>, <MULTIPOLYGON (((2381256.284 9169098.89, 2381066.156 9169377.843, 2380835.28...>, <POLYGON ((2999186.367 9680926.991, 2999906.137 9679853.178, 3000476.522 967...>, <POLYGON ((3069418.349 9634487.466, 3069941.201 9634480.71, 3070341.828 9634...>, <POLYGON ((3108659.442 9765650.482, 3109026.118 9764091.336, 3108802.038 976...>, <MULTIPOLYGON (((2886263.823 9106932.38, 2886032.954 9106618.984, 2885910.72...>, <POLYGON ((2517842.992 9803430.277, 2518820.794 9802978.152, 2520090.579 980...>, <POLYGON ((3401287.042 9611439.475, 3402129.039 9610358.236, 3402441.392 960...>, <MULTIPOLYGON (((3276291.361 9906958.361, 3276793.843 9907147.237, 3276739.5...>, <POLYGON ((3292425.093 9603809.734, 3292846.091 9603924.624, 3293246.719 960...>, <POLYGON ((3023903.027 9906283.803, 3023672.157 9905966.76, 3023495.609 9905...>, <MULTIPOLYGON (((2962892.26 9164594.584, 2963095.969 9164859.955, 2963584.87...>, <POLYGON ((3510420.603 9748141.305, 3509823.057 9747169.267, 3509524.285 974...>, <MULTIPOLYGON (((2343875.731 9193436.643, 2344276.358 9192994.618, 2344731.3...>, <MULTIPOLYGON (((3023495.609 9905278.71, 3023672.157 9905966.76, 3023903.027...>, <POLYGON ((3189171.925 9725843.625, 3189273.779 9724938.956, 3191141.109 972...>, <MULTIPOLYGON (((2573903.637 9915160.9, 2574114.136 9914870.845, 2574215.99 ...>, <POLYGON ((2140486.138 9697775.888, 2141389.246 9696871.033, 2141742.341 969...>, <POLYGON ((2405755.655 10081965.548, 2406000.105 10081344.971, 2406957.536 1...>, <POLYGON ((2148274.602 9642945.934, 2148607.326 9627095.9, 2148695.6 9621494...>, <POLYGON ((3355805.672 9719537.825, 3356172.347 9719436.552, 3356715.571 971...>, <MULTIPOLYGON (((3286537.911 9663630.012, 3286015.058 9663420.623, 3286239.1...>, <POLYGON ((2036329.86 9592029.456, 2035840.959 9590988.561, 2035521.816 9590...>, <MULTIPOLYGON (((2349015.981 9246845.588, 2348873.385 9246390.439, 2348662.8...>, <POLYGON ((2655740.226 9590366.721, 2655359.97 9585398.623, 2655237.745 9583...>, <POLYGON ((2315431.201 9709957.06, 2315139.218 9708998.271, 2314894.768 9708...>, <POLYGON ((2576171.594 9650917.382, 2575540.097 9651106.528, 2574772.794 965...>, <POLYGON ((3397158.545 9736807.233, 3398917.231 9735612.347, 3399772.807 973...>, <POLYGON ((3394741.202 9713711.124, 3392473.244 9711928.632, 3392772.017 971...>, <POLYGON ((3041292.963 10381404.361, 3041483.091 10381005.685, 3041584.945 1...>, <POLYGON ((2997482.004 10381316.517, 2997407.31 10365269.31, 2997407.31 1036...>, <POLYGON ((3062987.943 10396001.036, 3063055.846 10395068.408, 3063266.345 1...>, <POLYGON ((3122919.053 10394047.933, 3123177.084 10393628.933, 3123733.888 1...>, <POLYGON ((3091283.087 10221006.241, 3091201.603 10220365.087, 3090814.556 1...>, <POLYGON ((2995180.095 10220587.803, 2995146.143 10219919.655, 2995125.772 1...>, <POLYGON ((3174049.946 10171495.172, 3175075.28 10171825.792, 3175584.552 10...>, <MULTIPOLYGON (((2839159.573 10233343.843, 2839227.476 10233721.815, 2839594...>, <MULTIPOLYGON (((2839159.573 10233343.843, 2839594.152 10233917.55, 2839682....>, <POLYGON ((3139663.912 10460753.232, 3140662.084 10460489.477, 3141042.341 1...>, <POLYGON ((3048680.799 10465717.373, 3048415.978 10465250.704, 3048348.075 1...>, <MULTIPOLYGON (((3032839.05 10096751.721, 3032418.052 10096839.414, 3032363....>, <POLYGON ((3134903.917 10092245.663, 3134313.162 10091645.308, 3133912.535 1...>, <POLYGON ((3110859.496 10108266.684, 3110757.642 10107497.66, 3110581.094 10...>, <MULTIPOLYGON (((3139663.912 10460753.232, 3140044.168 10460861.439, 3140417...>, <POLYGON ((4384731.712 9812189.161, 4381696.451 9810117.563, 4379537.139 980...>, <POLYGON ((4422091.894 9456622.485, 4420109.129 9455078.905, 4409251.453 944...>, <POLYGON ((4411118.783 9837600.069, 4411166.315 9837114.279, 4411288.541 983...>, <POLYGON ((4175020.357 10013004.05, 4175298.759 10012430.738, 4176113.594 10...>, <POLYGON ((4167320.167 9278553.847, 4167809.068 9278764.314, 4168325.13 9279...>, <POLYGON ((3658075.486 10100138.042, 3659277.367 10099537.676, 3660567.523 1...>, <POLYGON ((3679193.292 10269045.774, 3678745.132 10268249.158, 3678914.89 10...>, <POLYGON ((3978305.62 9658219.547, 3978414.265 9657908.826, 3978950.698 9657...>, <POLYGON ((4209311.328 9947963.009, 4210065.05 9948205.831, 4210553.951 9948...>, <POLYGON ((4406494.595 9861713.009, 4405890.259 9861524.108, 4405034.682 986...>, <POLYGON ((4051640.766 9696540.152, 4052265.472 9696526.647, 4052598.197 969...>, <MULTIPOLYGON (((4617903.522 9887793.728, 4617414.621 9887550.875, 4616878.1...>, <POLYGON ((4498143.156 9764563.806, 4498197.478 9764179.08, 4498211.059 9763...>, <POLYGON ((3638954.026 9641554.25, 3644345.517 9641398.867, 3645384.432 9641...>, <POLYGON ((4193007.839 9800380.1, 4193367.724 9800224.891, 4193734.4 9800204...>, <POLYGON ((4289491.087 9705500.662, 4289491.087 9703407.455, 4288784.897 970...>, <POLYGON ((4179359.353 9196333.512, 4179284.66 9195891.513, 4179325.402 9195...>, <POLYGON ((4385553.337 9847261.704, 4386422.494 9845905.589, 4386768.799 984...>, <POLYGON ((4410161.352 9877735.432, 4410419.383 9877175.504, 4410521.238 987...>, <POLYGON ((3683620.561 9705845.025, 3683620.561 9705520.919, 3683620.561 970...>, <POLYGON ((4420631.981 9861072.094, 4419518.374 9855452.22, 4418717.119 9851...>, <POLYGON ((4375551.238 9467406.334, 4385152.71 9455302.32, 4385397.16 945486...>, <POLYGON ((4534145.28 9846445.337, 4534267.505 9846027.032, 4533832.926 9845...>, <MULTIPOLYGON (((4595753.592 9910283.915, 4596140.639 9909980.366, 4596480.1...>, <POLYGON ((3967977.587 9687302.147, 3967991.168 9686822.671, 3968235.618 968...>, <POLYGON ((4408993.422 9390482.085, 4409563.807 9389709.556, 4410283.578 938...>, <POLYGON ((4340662.722 9622670.175, 4340954.704 9621960.69, 4340988.655 9621...>, <POLYGON ((4168202.905 9920010.852, 4168331.92 9919592.639, 4168556 9919053....>, <POLYGON ((4432447.088 9829840.798, 4433194.02 9829820.556, 4433682.921 9829...>, <POLYGON ((4631151.38 9807465.618, 4630988.413 9806757.078, 4630886.559 9806...>, <POLYGON ((4331753.859 9950789.186, 4332222.39 9947187.326, 4332731.661 9944...>, <POLYGON ((4297021.52 9779513.431, 4297252.39 9778906.022, 4297422.147 97786...>, <POLYGON ((4251295.699 9256246.602, 4249604.916 9256484.323, 4249625.287 925...>, <POLYGON ((4553565.513 9888063.564, 4554522.944 9888158.007, 4554937.152 988...>, <POLYGON ((4557103.254 9823451.013, 4557069.303 9822951.698, 4557218.689 982...>, <POLYGON ((4464734.923 9882390.214, 4464687.391 9882039.421, 4464687.391 988...>, <MULTIPOLYGON (((4335766.922 9979900.359, 4335889.147 9979111.209, 4335502.1...>, <POLYGON ((4427293.257 9905879.068, 4426960.533 9905366.402, 4426627.808 990...>, <POLYGON ((4294475.161 9151249.26, 4294651.708 9150902.136, 4294984.432 9150...>, <POLYGON ((4456043.35 9804402.006, 4455663.094 9803619.225, 4455486.546 9803...>, <POLYGON ((4113031.789 9182894.953, 4112909.563 9182371.21, 4112889.192 9181...>, <POLYGON ((4281546.446 9346677.082, 4280351.355 9336504.35, 4280188.388 9335...>, <POLYGON ((4268536.248 9813781.645, 4268495.506 9813457.751, 4268352.91 9813...>, <POLYGON ((3652738.317 9822303.937, 3653057.461 9821858.6, 3653335.863 98216...>, <MULTIPOLYGON (((4461672.502 9926985.527, 4461536.696 9926688.735, 4461475.5...>, <POLYGON ((4440215.181 9577388.286, 4440615.808 9577624.888, 4440914.581 957...>, <POLYGON ((4348940.087 9339590.26, 4347391.9 9338247.4, 4344078.238 9335398....>, <POLYGON ((3426363.588 9840960.093, 3425962.961 9838753.817, 3425793.203 983...>, <POLYGON ((4311593.485 9203663.33, 4311661.388 9203051.42, 4311871.887 92026...>, <POLYGON ((4553314.272 9794563.038, 4553287.111 9793766.721, 4553321.062 979...>, <POLYGON ((4329261.823 9607763.215, 4329682.821 9607972.711, 4330287.157 960...>, <POLYGON ((4099471.577 9926897.839, 4098480.194 9926391.942, 4097821.536 992...>, <POLYGON ((4510168.762 9892016.641, 4509958.262 9891497.212, 4509713.812 989...>, <POLYGON ((4342978.211 9783738.243, 4343378.838 9783508.783, 4344037.496 978...>, <POLYGON ((4470438.768 9839462.257, 4464945.422 9836068.476, 4461475.583 983...>, <POLYGON ((4506053.845 9733931.39, 4506651.391 9733465.579, 4507119.921 9732...>, <MULTIPOLYGON (((4507133.501 9820070.494, 4507194.614 9820556.321, 4507574.8...>, <POLYGON ((3518012.149 9539611.966, 3518290.551 9539314.398, 3518623.275 953...>, <POLYGON ((4295731.364 9450089.123, 4295907.912 9449825.068, 4296240.636 944...>, <POLYGON ((3435014.419 9198931.03, 3434484.776 9199121.418, 3433914.392 9198...>, <POLYGON ((4330572.349 9516905.832, 4330572.349 9516310.532, 4330708.155 951...>, <POLYGON ((3564702.191 9779041.002, 3565136.77 9778892.524, 3567241.76 97784...>, <POLYGON ((4313386.122 9810326.748, 4313039.817 9810029.84, 4312483.013 9809...>, <POLYGON ((4510610.13 9770402.075, 4509978.633 9770300.835, 4508477.979 9770...>, <POLYGON ((4489777.517 9895254.625, 4489451.583 9895544.693, 4489254.665 989...>, <POLYGON ((4340099.127 9452729.62, 4341511.508 9451057.317, 4341341.751 9450...>, <POLYGON ((4501891.396 9927086.707, 4501755.591 9927471.188, 4501932.138 992...>, <POLYGON ((4484834.185 9921892.81, 4483998.979 9921427.38, 4483503.288 99210...>, <POLYGON ((4411118.783 9837600.069, 4410697.785 9837424.645, 4409984.805 983...>, <POLYGON ((3887268.186 9704582.356, 3887533.007 9703853.108, 3887587.329 970...>, <POLYGON ((4132513.134 9841715.755, 4132744.004 9841493.105, 4132900.181 984...>, <POLYGON ((4289491.087 9705500.662, 4286150.264 9705534.423, 4283678.598 970...>, <POLYGON ((4391352.246 9797660.544, 4391263.972 9797262.392, 4391230.02 9796...>, <POLYGON ((3748535.746 9638831.633, 3748114.748 9638628.954, 3747646.217 963...>, <POLYGON ((3780755.678 9890040.108, 3781230.998 9888137.769, 3781753.85 9886...>, <POLYGON ((4321615.955 9855971.709, 4321303.601 9855566.913, 4320964.087 985...>, <POLYGON ((4598877.126 9754270.407, 4601138.293 9750895.38, 4602326.594 9749...>, <POLYGON ((4332439.679 9465274.06, 4332453.259 9457076.075, 4331774.23 94569...>, <POLYGON ((4516707.812 9867791.51, 4516843.618 9857786.539, 4514052.808 9855...>, <POLYGON ((3642267.688 9249685.087, 3641901.012 9249725.844, 3641622.61 9249...>, <POLYGON ((4209440.343 9548944.281, 4210221.227 9548531.787, 4210900.256 954...>, <POLYGON ((3586240.995 10265663.559, 3586451.494 10265130.242, 3586865.702 1...>, <POLYGON ((4252585.854 9797127.426, 4251798.18 9795582.049, 4251404.343 9794...>, <MULTIPOLYGON (((3573135.733 9858690.577, 3573393.764 9858933.452, 3573638.2...>, <POLYGON ((4558583.538 9831379.178, 4558393.41 9830879.88, 4558216.862 98304...>, <POLYGON ((4105908.773 9283048.147, 4105732.226 9282593.302, 4105745.806 928...>, <POLYGON ((4103260.56 9656260.64, 4103796.993 9656172.826, 4104285.893 96562...>, <POLYGON ((4422125.845 9369817.137, 4423748.725 9368827.436, 4424224.045 936...>, <POLYGON ((4617346.718 9726518.748, 4617278.815 9726154.182, 4617292.396 972...>, <POLYGON ((4240580.619 9351776.369, 4241225.697 9351125.42, 4241626.324 9351...>, <POLYGON ((4240356.539 9146484.587, 4240546.668 9146219.112, 4240471.974 914...>, <POLYGON ((4531449.534 9889385.758, 4531008.165 9889399.25, 4532128.563 9880...>, <POLYGON ((4310323.7 9306369.255, 4310961.988 9306070.675, 4311593.485 93063...>, <POLYGON ((3744407.249 9623785.07, 3744420.829 9622913.425, 3744366.507 9622...>, <POLYGON ((4311138.535 9918176.105, 4311294.712 9917703.927, 4311328.663 991...>, <POLYGON ((4081382.241 9804415.502, 4081803.239 9804192.815, 4082068.061 980...>, <POLYGON ((3992592.393 9823052.911, 3993189.939 9823052.911, 3993536.244 982...>, <POLYGON ((3887512.636 9807323.91, 3887743.506 9806777.322, 3887865.731 9806...>, <POLYGON ((4553565.513 9888063.564, 4553096.983 9887665.555, 4552954.387 988...>, <POLYGON ((4561286.074 9904914.447, 4560878.656 9904968.412, 4560430.497 990...>, <POLYGON ((4221723.98 9127788.729, 4222090.656 9127019.217, 4222470.912 9126...>, <POLYGON ((4310928.036 9210033.551, 4310527.409 9209720.837, 4310303.329 920...>, <POLYGON ((4464198.49 9489483.678, 4453483.41 9481180.045, 4443583.166 94735...>, <POLYGON ((3696135.068 9582018.816, 3696427.051 9581640.27, 3696691.872 9581...>, <POLYGON ((4525922.237 9928091.754, 4525833.963 9927592.603, 4526085.204 992...>, <POLYGON ((4384086.634 9921359.926, 4384052.682 9920874.26, 4384154.537 9920...>, <POLYGON ((4417739.317 9879253.302, 4417773.269 9878720.362, 4417684.995 987...>, <POLYGON ((4309345.898 9943639.409, 4309644.671 9942890.702, 4309502.075 994...>, <POLYGON ((4439733.071 9866462.481, 4439936.779 9862994.835, 4440011.473 986...>, <POLYGON ((4575151.849 9828977.142, 4575484.573 9828882.679, 4575959.893 982...>, <POLYGON ((4240505.926 9075970.378, 4240872.602 9076113.551, 4241259.648 907...>, <POLYGON ((4507432.274 9848590.825, 4507486.596 9847518.083, 4507486.596 984...>, <POLYGON ((4236520.025 8992144.258, 4236601.508 8991618.222, 4235997.172 899...>, <POLYGON ((3719242.429 9766845.142, 3719486.88 9766325.432, 3723785.134 9759...>, <POLYGON ((4512592.895 9907558.716, 4512735.492 9907214.692, 4513258.344 990...>, <POLYGON ((4419952.952 9888738.154, 4420217.774 9888225.466, 4420523.337 988...>, <MULTIPOLYGON (((4444608.5 9924354.858, 4444520.226 9923916.412, 4444262.195...>, <POLYGON ((4392397.95 9380180.944, 4392296.096 9379591.289, 4391617.067 9379...>, <POLYGON ((4481595.216 9817783.048, 4482009.424 9817803.291, 4482321.777 981...>, <POLYGON ((4141068.901 9427356.492, 4140967.047 9426956.895, 4141143.594 942...>, <POLYGON ((4476393.853 9883152.512, 4476346.321 9882477.912, 4476638.303 988...>, <POLYGON ((4374349.356 9348236.749, 4373860.455 9347321.297, 4373880.826 934...>, <POLYGON ((4449090.092 9914155.827, 4449090.092 9913798.317, 4449124.043 991...>, <POLYGON ((4547970.313 9912307.566, 4547814.136 9911855.618, 4547651.169 991...>, <POLYGON ((4359729.859 9408003.851, 4359546.521 9407590.591, 4359729.859 940...>, <POLYGON ((4514650.354 9838288.27, 4515017.029 9837357.174, 4515499.14 98368...>, <POLYGON ((4273900.578 9868709.009, 4267103.497 9853367.508, 4266838.675 985...>, <POLYGON ((4275625.312 9256015.673, 4275869.763 9256368.859, 4276148.165 925...>, <MULTIPOLYGON (((4007476.711 9613034.282, 4008698.964 9612196.336, 4008909.4...>, <MULTIPOLYGON (((4355295.799 9975455.485, 4356049.521 9975192.435, 4356395.8...>, <POLYGON ((4388636.129 9717127.505, 4388588.597 9716432.082, 4388513.904 971...>, <POLYGON ((4468449.212 9882788.228, 4467681.909 9882612.832, 4467335.604 988...>, <POLYGON ((3543808.465 9781349.144, 3543577.595 9780849.724, 3543428.209 978...>, <POLYGON ((4437899.692 9769571.906, 4438911.445 9769463.916, 4441580.03 9769...>, <MULTIPOLYGON (((4534729.245 9846134.982, 4534267.505 9846027.032, 4534145.2...>, <POLYGON ((3611195.315 9476022.812, 3610237.884 9476056.653, 3609905.16 9475...>, <POLYGON ((4096056.061 9266365.79, 4096198.657 9265931.179, 4096022.109 9265...>, <POLYGON ((4264876.281 9549539.351, 4260319.996 9549573.162, 4242794.254 954...>, <POLYGON ((4550754.332 9606006.131, 4551107.427 9605438.452, 4550788.284 960...>, <POLYGON ((3792326.334 9680785.167, 3792414.608 9680096.306, 3792917.089 967...>, <MULTIPOLYGON (((4435672.476 9882248.547, 4443162.168 9883806.873, 4449198.7...>, <MULTIPOLYGON (((4631891.522 9889156.399, 4631531.637 9888758.391, 4631090.2...>, <POLYGON ((4026401.253 9656416.003, 4027256.83 9656882.09, 4028125.987 96567...>, <POLYGON ((4293293.65 9277698.395, 4301795.095 9266454.07, 4307166.215 92593...>, <MULTIPOLYGON (((3945875.189 10154539.704, 3945773.335 10154006.702, 3945420...>, <MULTIPOLYGON (((4169900.478 10233370.841, 4170470.862 10233519.33, 4171027....>, <POLYGON ((3902539.551 10223415.65, 3902919.807 10223307.664, 3903218.58 102...>, <POLYGON ((4145149.866 10236948.103, 4144660.965 10236772.612, 4144212.806 1...>, <POLYGON ((4213657.114 10133470.055, 4213568.841 10132869.63, 4213378.712 10...>, <POLYGON ((4121798.055 10109595.616, 4121933.86 10109150.389, 4121798.055 10...>, <MULTIPOLYGON (((4144362.192 10045716.89, 4144885.045 10045676.42, 4144518.3...>, <POLYGON ((3856419.893 10241639.156, 3856637.182 10240977.675, 3857452.017 1...>, <MULTIPOLYGON (((4161582.371 10083935.211, 4161358.291 10084178.047, 4161039...>, <POLYGON ((3959761.335 10048502.585, 3959869.98 10048124.863, 3960026.156 10...>, <POLYGON ((4093204.138 10432853.777, 4092796.721 10431596.275, 4092212.756 1...>, <POLYGON ((4072303.622 10081344.971, 4071991.268 10081129.118, 4071570.27 10...>, <POLYGON ((4123346.241 10201853.577, 4123678.965 10201698.366, 4124045.641 1...>, <POLYGON ((4083290.313 10005733.11, 4082937.218 10005402.613, 4082903.266 10...>, <POLYGON ((4120215.917 10175341.189, 4120684.447 10175253.472, 4121051.123 1...>, <POLYGON ((4023386.364 9873971.081, 4022714.125 9873539.324, 4022272.756 987...>, <POLYGON ((4345049.25 8914993.232, 4344546.768 8915739.375, 4342441.778 8919...>, <POLYGON ((4507119.921 9288757.148, 4506943.373 9288424.535, 4506685.342 928...>, <POLYGON ((4383271.799 8733543.753, 4382803.269 8733447.405, 4382395.851 873...>, <POLYGON ((4587822.532 8762318.105, 4588644.157 8761314.223, 4586919.423 875...>, <POLYGON ((4341307.799 8630783.206, 4341912.135 8630506.996, 4342353.504 863...>, <POLYGON ((4418832.554 9335168.203, 4418798.603 9334489.945, 4418296.121 933...>, <POLYGON ((4463465.138 9288302.35, 4463261.43 9288044.403, 4462996.608 92873...>, <POLYGON ((4461495.954 8902484.525, 4461353.358 8901998.331, 4461163.23 8901...>, <POLYGON ((4396567.189 9226896.824, 4396404.222 9226359.95, 4396064.708 9225...>, <POLYGON ((4300389.504 9041260.765, 4300667.906 9041015.125, 4300844.454 904...>, <POLYGON ((4292390.541 8603729.819, 4292146.091 8603342.764, 4292458.444 860...>, <POLYGON ((4423300.566 9222730.803, 4423259.824 9222255.053, 4422981.422 922...>, <POLYGON ((4391515.213 9250017.937, 4391820.776 9249705.466, 4391943.001 924...>, <POLYGON ((4415939.89 9411587.587, 4416272.614 9411242.094, 4417508.447 9410...>, <POLYGON ((4359431.086 9157313.309, 4359553.312 9156877.758, 4359757.02 9156...>, <POLYGON ((4557374.866 8622440.51, 4557395.237 8622102.056, 4557707.59 86220...>, <POLYGON ((4441980.657 9401940.192, 4442279.43 9401797.909, 4442680.057 9401...>, <POLYGON ((4633582.305 8583914.197, 4633989.722 8583858.866, 4634234.173 858...>, <POLYGON ((4471294.344 9361743.168, 4470886.927 9361946.555, 4470581.364 936...>, <POLYGON ((4495413.459 9225884.234, 4494917.767 9224259.969, 4494367.754 922...>, <POLYGON ((4386021.867 9142393.387, 4386076.189 9141767.081, 4386130.512 914...>, <POLYGON ((4506950.163 9163478.648, 4506495.214 9163369.774, 4506162.49 9163...>, <POLYGON ((4352233.378 8882901.502, 4351887.073 8883045.383, 4351513.607 888...>, <POLYGON ((4349286.391 9125704.889, 4349544.422 9125166.888, 4349863.566 912...>, <POLYGON ((4445606.672 9014654.841, 4445952.977 9014709.463, 4446095.573 901...>, <POLYGON ((4410853.962 9096861.73, 4410331.11 9096452.859, 4409998.385 90962...>, <POLYGON ((4392764.626 8784876.678, 4392431.902 8784649.933, 4391997.323 878...>, <POLYGON ((4436242.861 9416512.375, 4436840.407 9416180.454, 4436908.309 941...>, <POLYGON ((4476746.948 9334069.421, 4477133.995 9333777.765, 4477650.057 933...>, <POLYGON ((4585384.817 9070318.101, 4585242.221 9069868.068, 4584916.287 906...>, <MULTIPOLYGON (((4332208.809 8668441.068, 4332609.436 8668689.341, 4332955.7...>, <POLYGON ((4408586.005 9232727.329, 4408918.729 9232652.583, 4409339.727 923...>, <POLYGON ((4450556.795 9408315.487, 4450726.552 9407814.158, 4450448.15 9407...>, <POLYGON ((4253461.802 8981574.366, 4253000.062 8981157.525, 4252443.258 898...>, <POLYGON ((4528522.919 9005729.979, 4528169.824 9005299.733, 4528400.693 900...>, <POLYGON ((4320359.751 8872670.794, 4320481.976 8872197.904, 4320549.879 887...>, <POLYGON ((4485839.148 8727129.096, 4485492.843 8726950.127, 4485071.845 872...>, <POLYGON ((4392031.275 9128762.518, 4392139.919 9128367.557, 4392350.418 912...>, <POLYGON ((4619648.627 8570811.445, 4618093.65 8558609.478, 4617781.297 8558...>, <POLYGON ((4531639.662 8681376.124, 4532264.369 8681072.806, 4532861.915 868...>, <POLYGON ((4335271.23 9067924.692, 4335515.681 9067467.816, 4335800.873 9067...>, <POLYGON ((4325024.681 8831011.436, 4324834.553 8830284.095, 4324508.619 882...>, <POLYGON ((4348295.009 8765137.062, 4348464.766 8764717.671, 4348783.91 8764...>, <POLYGON ((4499752.455 9258060.047, 4499677.762 9254969.684, 4499874.68 9253...>, <POLYGON ((4653627.244 8708504.03, 4654061.823 8708393.83, 4654550.724 87082...>, <POLYGON ((4269975.79 8955974.755, 4270505.433 8955803.806, 4270783.834 8955...>, <POLYGON ((4307641.535 9007539.694, 4308144.017 9007717.247, 4308612.547 900...>, <MULTIPOLYGON (((4249503.062 8747311.616, 4248980.209 8747222.189, 4248837.6...>, <POLYGON ((4389491.706 9425250.117, 4389851.591 9424525.401, 4390136.783 942...>, <POLYGON ((4355974.828 8799707.971, 4355574.201 8798821.989, 4355350.121 879...>, <POLYGON ((4335692.228 8666620.34, 4335570.003 8666275.492, 4335556.423 8665...>, <POLYGON ((4501511.14 9187696.804, 4501646.946 9187329.54, 4501789.542 91869...>, <GEOMETRYCOLLECTION (POLYGON ((4268305.378 8728560.806, 4268285.007 8728223....>, <POLYGON ((4400003.077 9004049.944, 4400661.735 9004029.456, 4402019.793 900...>, <MULTIPOLYGON (((4301448.79 9040264.547, 4300844.454 9040598.897, 4300667.90...>, <POLYGON ((4528957.497 9133236.23, 4528903.175 9132664.273, 4529561.833 9132...>, <POLYGON ((4411166.315 9054625.531, 4411485.459 9054761.954, 4411811.393 905...>, <POLYGON ((4380236.539 8732160.444, 4379835.912 8731857.623, 4379543.929 873...>, <POLYGON ((4407648.945 8767804.531, 4407356.962 8767027.688, 4407805.121 876...>, <POLYGON ((4454597.018 9094572.006, 4454610.599 9094238.078, 4454366.148 909...>, <POLYGON ((4505795.814 9354522.484, 4505931.62 9353810.54, 4505985.942 93533...>, <POLYGON ((4454597.018 9094572.006, 4454216.762 9094585.636, 4453843.296 909...>, <POLYGON ((4365494.817 9088724.493, 4365827.541 9088465.494, 4366139.894 908...>, <POLYGON ((4364761.465 8618841.642, 4365216.415 8618765.653, 4365576.3 86185...>, <POLYGON ((4331285.329 9103559.852, 4331543.36 9103260.059, 4331631.634 9102...>, <POLYGON ((4270362.836 8796033.396, 4270084.434 8795648.744, 4269982.58 8794...>, <POLYGON ((4514263.307 8847790.894, 4514609.612 8847276.518, 4514752.208 884...>, <POLYGON ((4418676.377 8894985.461, 4418486.249 8894540.262, 4418785.022 889...>, <POLYGON ((4634750.235 8577342.825, 4634682.332 8576830.886, 4634356.398 857...>, <MULTIPOLYGON (((4554067.994 8888601.471, 4554000.091 8888964.539, 4554577.2...>, <POLYGON ((4458460.694 9318643.617, 4459071.82 9318718.246, 4459628.624 9318...>, <POLYGON ((4287616.966 8893026.545, 4287365.726 8892711.465, 4286951.518 889...>, <POLYGON ((4611853.373 8866227.979, 4612342.274 8866159.432, 4612797.223 886...>, <POLYGON ((4507133.501 9342777.737, 4506651.391 9341102.637, 4506026.684 933...>, <POLYGON ((4402834.628 8962907.806, 4402821.047 8962470.254, 4402800.677 896...>, <POLYGON ((4381105.696 8976537.806, 4381193.97 8976155.083, 4381214.341 8975...>, <POLYGON ((4459750.849 8854216.522, 4459811.962 8853702.241, 4459737.269 885...>, <POLYGON ((4344879.492 8882182.091, 4344356.64 8882216.349, 4344315.898 8881...>, <POLYGON ((4503093.278 9271024.054, 4503324.148 9270623.432, 4503371.68 9270...>, <POLYGON ((4352043.25 9237293.42, 4352878.455 9236729.475, 4357876.11 923336...>, <POLYGON ((4509089.105 8746431.091, 4509856.408 8746128.405, 4510277.406 874...>, <POLYGON ((4469841.222 9304855.982, 4470214.688 9304801.694, 4470404.816 930...>, <POLYGON ((4426783.985 9165798.949, 4426695.711 9165240.998, 4426559.906 916...>, <POLYGON ((4334958.877 8847262.801, 4334592.201 8847118.775, 4334402.073 884...>, <POLYGON ((4532373.014 8886861.432, 4533228.591 8886895.686, 4533622.427 888...>, <POLYGON ((4616511.512 8558124.888, 4616538.674 8557612.599, 4615669.516 855...>, <POLYGON ((4650123.454 8705886.679, 4649736.407 8704081.956, 4649396.893 870...>, <POLYGON ((4356640.277 8810997.039, 4356307.553 8810770.471, 4355872.974 881...>, <POLYGON ((4434069.968 9163601.13, 4434382.321 9163213.269, 4434782.948 9162...>, <POLYGON ((4419043.053 8569178.363, 4419416.519 8568873.88, 4419742.453 8568...>, <POLYGON ((4352233.378 8882901.502, 4352321.652 8882517.818, 4352579.683 888...>, <POLYGON ((4457190.909 8637287.207, 4457387.828 8637770.462, 4457611.907 863...>, <POLYGON ((4377914.259 9161872.743, 4378233.403 9162117.715, 4378566.127 916...>, <POLYGON ((4478641.439 8980679.177, 4478240.812 8980467.335, 4478261.183 897...>, <POLYGON ((4392194.242 8717284.324, 4392574.498 8717112.185, 4392805.368 871...>, <POLYGON ((4356327.923 9101951.85, 4356504.471 9101529.399, 4356572.374 9101...>, <POLYGON ((4368333.158 9036108.832, 4368176.982 9035829.04, 4367688.081 9035...>, <POLYGON ((4489974.435 8777771.237, 4490354.692 8777805.6, 4490599.142 87774...>, <POLYGON ((4426872.259 9277698.395, 4427530.917 9277229.928, 4427843.271 927...>, <POLYGON ((4225397.528 8967098.482, 4225030.852 8966455.896, 4224637.015 896...>, <MULTIPOLYGON (((4627871.67 8685215.59, 4628272.297 8685105.307, 4628598.231...>, <MULTIPOLYGON (((4489641.711 8777386.373, 4489954.065 8777118.339, 4489662.0...>, <POLYGON ((4563587.983 8737335.498, 4563302.79 8736716.188, 4563479.338 8736...>, <POLYGON ((4403642.673 8883113.897, 4403377.851 8882730.215, 4403099.449 888...>, <POLYGON ((4479205.033 9400639.312, 4479205.033 9400185.354, 4478919.841 939...>, <POLYGON ((4390136.783 9065790.287, 4390781.861 9066260.82, 4391392.987 9067...>, <POLYGON ((4363179.327 8843421.886, 4362371.283 8843332.717, 4361821.269 884...>, <POLYGON ((4571926.46 9053077.101, 4571525.833 9053042.994, 4571491.882 9052...>, <POLYGON ((4446217.799 9289435.944, 4446462.249 9289076.183, 4446767.812 928...>, <POLYGON ((4594653.565 8751321.826, 4595088.144 8751156.75, 4595420.868 8750...>, <POLYGON ((4402630.919 8992957.209, 4403140.191 8992724.939, 4403520.447 899...>, <POLYGON ((4516341.136 8969080.862, 4516741.763 8968841.615, 4517556.598 896...>, <POLYGON ((4450780.874 9420163.396, 4451738.305 9419987.285, 4451982.756 941...>, <POLYGON ((4252538.322 8644107.273, 4252952.53 8643755.263, 4253251.303 8643...>, <POLYGON ((4358786.009 9219570.381, 4359145.894 9219726.707, 4359444.667 921...>, <POLYGON ((4441770.158 9040332.782, 4442048.56 9040578.427, 4442394.865 9040...>, <POLYGON ((4330103.819 8801479.865, 4330409.382 8801294.439, 4330816.799 880...>, <POLYGON ((4465834.95 8753213.261, 4466154.094 8753027.561, 4466391.754 8752...>, <POLYGON ((4470248.639 8870313.134, 4470180.736 8869943.022, 4470241.849 886...>, <POLYGON ((4489954.065 9289435.944, 4489641.711 9289042.243, 4489220.713 928...>, <POLYGON ((4471294.344 9361743.168, 4471694.971 9361865.2, 4471762.874 93614...>, <MULTIPOLYGON (((4554923.571 8889272.802, 4555093.328 8888902.887, 4555690.8...>, <POLYGON ((4498496.251 9389228.415, 4498733.911 9389018.339, 4499419.73 9388...>, <POLYGON ((4409007.003 8633552.07, 4409339.727 8633268.981, 4409672.451 8633...>, <POLYGON ((4418710.329 9420630.767, 4419328.245 9420000.832, 4420645.562 941...>, <POLYGON ((4410487.286 8721628.796, 4410833.591 8721188.18, 4411044.09 87208...>, <POLYGON ((4474234.54 8782162.499, 4474030.832 8781681.481, 4473976.509 8781...>, <POLYGON ((4471776.455 9383501.886, 4472129.55 9383156.245, 4473154.884 9382...>, <POLYGON ((4344512.817 8679163.214, 4344180.092 8678846.086, 4344125.77 8678...>, <POLYGON ((4624979.006 8652223.04, 4624979.006 8651864.226, 4624958.635 8651...>, <POLYGON ((4568639.959 8639082.113, 4568572.056 8638529.846, 4568239.332 863...>, <POLYGON ((4364761.465 8618841.642, 4363994.162 8618454.789, 4364007.743 861...>, <POLYGON ((4418832.554 8893307.375, 4419083.795 8893067.642, 4419165.278 889...>, <POLYGON ((4432311.282 8953082.194, 4432548.942 8953328.378, 4432793.393 895...>, <POLYGON ((4507140.292 9328188.554, 4506977.325 9327455.949, 4506787.196 932...>, <POLYGON ((4429730.972 9021133.864, 4429384.667 9020799.356, 4429065.523 902...>, <POLYGON ((4426437.68 9095703.254, 4426383.358 9095212.596, 4426084.585 9094...>, <POLYGON ((4470975.201 9234969.656, 4473277.109 9226251.215, 4464463.311 922...>, <POLYGON ((4406358.789 9293739.318, 4406060.016 9293359.223, 4405645.809 929...>, <POLYGON ((4572680.183 9513780.463, 4572849.94 9513273.086, 4572578.328 9512...>, <POLYGON ((4974332.699 9531002.348, 4974414.183 9530603.295, 4974291.957 953...>, <POLYGON ((5102431.543 9677577.203, 5101752.514 9677408.36, 5101161.759 9677...>, <MULTIPOLYGON (((4841888.069 9731764.344, 4841501.022 9731629.325, 4841331.2...>, <POLYGON ((4976614.237 9517115.538, 4976994.493 9516905.832, 4979418.627 951...>, <POLYGON ((4730466.18 9550026.224, 4730425.438 9549350.011, 4730024.811 9548...>, <POLYGON ((4858897.748 9526835.871, 4858565.024 9526639.717, 4858211.929 952...>, <POLYGON ((4706136.566 9599051.834, 4705314.941 9594165.286, 4703970.464 958...>, <POLYGON ((4673095.009 9025413.959, 4673210.444 9024635.793, 4673020.316 902...>, <POLYGON ((4664430.598 9831608.585, 4665109.627 9831190.255, 4673475.266 982...>, <POLYGON ((4614521.957 9463290.651, 4639822.582 9463046.952, 4656295.829 946...>, <POLYGON ((4840109.012 9644452.446, 4839884.933 9644155.199, 4839484.306 964...>, <POLYGON ((4984579.249 9616811.713, 4985027.408 9616568.448, 4985360.132 961...>, <MULTIPOLYGON (((4769809.127 9836264.143, 4770264.077 9836129.2, 4770685.075...>, <POLYGON ((4706428.549 9679103.529, 4707820.559 9665203.796, 4708085.38 9662...>, <POLYGON ((5130611.252 9695176.102, 5129341.467 9694257.724, 5129063.065 969...>, <POLYGON ((4713592.306 9454740.396, 4713279.953 9454469.587, 4713035.502 945...>, <POLYGON ((4805722.978 9635122.549, 4808846.512 9630595.809, 4811773.127 962...>, <POLYGON ((4883240.942 9689422.625, 4883308.845 9688652.774, 4883315.635 968...>, <POLYGON ((4819249.238 9573190.191, 4819303.56 9572791.328, 4819194.915 9572...>, <POLYGON ((4857410.674 9694169.938, 4857553.271 9693764.768, 4857709.447 969...>, <MULTIPOLYGON (((4736129.283 9812162.169, 4736108.912 9811791.038, 4735755.8...>, <POLYGON ((4827003.75 9713076.452, 4826833.993 9712549.806, 4826704.978 9712...>, <MULTIPOLYGON (((4551508.055 9002916.222, 4551053.105 9003510.406, 4551453.7...>, <POLYGON ((5012616.361 9279477.177, 5012881.182 9279124.141, 5013770.711 927...>, <MULTIPOLYGON (((4798987.009 9418043.254, 4799292.572 9417704.567, 4799611.7...>, <POLYGON ((5039872.59 9709747.747, 5037502.778 9701395.244, 5036667.573 9698...>, <POLYGON ((4949133.928 9670026.334, 4953126.62 9668857.866, 4953472.924 9668...>, <POLYGON ((4741575.096 9591252.165, 4742260.916 9590833.101, 4743184.395 959...>, <POLYGON ((4852243.263 9231714.853, 4852290.795 9231395.477, 4852779.696 923...>, <POLYGON ((4813321.313 9747884.795, 4813640.457 9747601.284, 4814000.343 974...>, <POLYGON ((4805397.044 9494768.576, 4805573.591 9490701.74, 4808153.902 9485...>, <POLYGON ((4658624.899 9809213.341, 4653959.969 9799482.583, 4653661.196 979...>, <POLYGON ((4717130.048 9613912.766, 4717238.693 9613601.919, 4716994.242 961...>, <POLYGON ((4611350.891 9524076.143, 4611799.05 9523744.699, 4611928.066 9523...>, <POLYGON ((4776904.982 9544968.026, 4777319.189 9544575.8, 4777597.591 95440...>, <POLYGON ((5040585.571 9598321.908, 5040218.895 9598234.047, 5039872.59 9598...>, <POLYGON ((4711310.768 9535926.101, 4711290.397 9535493.255, 4711602.751 953...>, <POLYGON ((4998119.089 9586716.715, 5001500.654 9584911.938, 5012270.056 957...>, <POLYGON ((4913097.853 9383922.075, 4913423.787 9383508.663, 4913722.56 9383...>, <POLYGON ((4635782.359 9524177.605, 4636060.761 9524022.03, 4636352.743 9523...>, <POLYGON ((4565434.942 9407278.95, 4565550.377 9406615.016, 4565516.425 9406...>, <MULTIPOLYGON (((4883784.166 9662859.999, 4883349.587 9662670.872, 4883274.8...>, <MULTIPOLYGON (((4825801.869 9662447.972, 4825346.919 9662393.935, 4824552.4...>, <MULTIPOLYGON (((4766868.931 9616602.234, 4766604.11 9617034.705, 4766624.48...>, <POLYGON ((4527979.695 9323731.73, 4528292.049 9323263.642, 4528611.192 9322...>, <MULTIPOLYGON (((4710923.722 9856484.451, 4711623.122 9856059.415, 4711813.2...>, <POLYGON ((4878956.269 9608959.366, 4879180.348 9609371.595, 4879560.604 960...>, <POLYGON ((4852922.292 9464996.521, 4852847.599 9465375.598, 4849574.678 946...>, <MULTIPOLYGON (((4560165.676 9145558.823, 4559873.693 9146287.183, 4560233.5...>, <MULTIPOLYGON (((4664430.598 9880730.69, 4664450.969 9881277.119, 4664729.37...>, <POLYGON ((5014762.093 9494714.443, 5014605.916 9494261.078, 5014273.192 949...>, <POLYGON ((4828192.051 9776948.801, 4827825.376 9776969.048, 4827390.797 977...>, <POLYGON ((4801445.094 9758462.092, 4801424.723 9757496.866, 4801227.805 975...>, <POLYGON ((4667622.035 9762086.699, 4667289.31 9761634.471, 4667112.763 9761...>, <MULTIPOLYGON (((4595475.19 9682885.495, 4595094.934 9682750.427, 4595006.66...>, <POLYGON ((4956976.715 9607344.221, 4956834.119 9606945.499, 4956766.216 960...>, <POLYGON ((4493315.259 9436099.637, 4493715.886 9434569.157, 4494055.4 94332...>, <POLYGON ((4952237.091 9532875.842, 4959013.802 9524164.077, 4953506.876 952...>, <POLYGON ((4979921.109 9554658.142, 4980172.35 9554225.389, 4980566.186 9554...>, <POLYGON ((4885019.999 9347314.516, 4889182.447 9343727.166, 4899340.723 933...>, <MULTIPOLYGON (((4800379.018 9590724.955, 4800304.325 9591089.947, 4799958.0...>, <GEOMETRYCOLLECTION (POLYGON ((4890126.298 9573426.803, 4890296.055 9572960....>, <MULTIPOLYGON (((4818923.304 9799516.325, 4818828.24 9800224.891, 4818536.25...>, <POLYGON ((4509822.457 9390163.587, 4510155.181 9389838.312, 4510481.115 938...>, <POLYGON ((4854640.236 9456548.015, 4854273.56 9449412.057, 4854015.529 9444...>, <POLYGON ((5016018.297 9548930.756, 5015807.798 9548322.158, 5015250.994 954...>, <POLYGON ((4805485.317 9462654.324, 4807692.162 9463480.194, 4808255.756 946...>, <POLYGON ((4531415.583 9272001.831, 4531897.693 9271635.167, 4531931.645 927...>, <POLYGON ((4628408.103 9231239.186, 4627851.299 9230736.333, 4621264.716 922...>, <POLYGON ((4799869.747 9322707.359, 4799577.764 9322530.975, 4799190.717 932...>, <POLYGON ((4684108.862 9302188.996, 4686057.675 9293589.995, 4685344.695 928...>, <POLYGON ((4674378.374 9263914.268, 4674154.295 9263649.416, 4673930.215 926...>, <POLYGON ((4908548.358 9385975.538, 4908405.762 9385596.025, 4908127.36 9385...>, <MULTIPOLYGON (((4687245.976 9862165.022, 4687728.087 9862826.174, 4687938.5...>, <POLYGON ((4885332.352 9449134.458, 4885678.657 9449026.127, 4886086.074 944...>, <POLYGON ((4881393.983 9447502.697, 4877944.515 9445017.744, 4865497.911 943...>, <POLYGON ((4509808.876 9375416.107, 4510277.406 9375124.647, 4510637.292 937...>, <POLYGON ((4875072.222 9418300.655, 4877299.437 9410862.726, 4878168.595 940...>, <POLYGON ((4893385.637 9392393.038, 4893609.717 9391939.022, 4894098.618 939...>, <POLYGON ((4717197.951 9614629.064, 4717231.902 9614311.461, 4717130.048 961...>, <POLYGON ((4706448.92 9757112.124, 4701410.524 9753858.657, 4698551.811 9751...>, <POLYGON ((4854660.607 9410022.69, 4857397.094 9406303.372, 4859488.504 9403...>, <POLYGON ((4673875.893 9412508.895, 4673706.136 9412041.469, 4673217.235 941...>, <MULTIPOLYGON (((4836394.723 9770334.582, 4835634.21 9770260.339, 4835124.93...>, <MULTIPOLYGON (((4948244.4 9725809.869, 4948122.175 9725458.804, 4947775.87 ...>, <MULTIPOLYGON (((4905377.292 9731973.624, 4905723.597 9731858.858, 4905859.4...>, <POLYGON ((4774148.123 9605087.03, 4774535.17 9605073.513, 4774969.749 96049...>, <POLYGON ((4805397.044 9494768.576, 4804928.514 9494626.477, 4804507.515 949...>, <POLYGON ((4514494.177 9418036.48, 4514439.855 9417379.425, 4514331.21 94167...>, <POLYGON ((4710176.79 9447692.281, 4710821.867 9447516.239, 4717754.755 9446...>, <POLYGON ((4883505.764 9636162.997, 4884178.002 9632629.488, 4884463.195 963...>, <POLYGON ((4563099.082 9548011.094, 4562080.538 9548301.871, 4560722.48 9548...>, <POLYGON ((4878643.915 9353620.687, 4878671.076 9353132.491, 4878467.368 935...>, <POLYGON ((4730024.811 9433058.961, 4730411.858 9432774.526, 4730724.211 943...>, <POLYGON ((4567472.029 9423895.501, 4566962.757 9423550.07, 4566514.598 9423...>, <POLYGON ((4817504.133 9462126.304, 4817436.23 9461645.667, 4817422.649 9461...>, <POLYGON ((4660003.328 9807533.098, 4660505.809 9807121.47, 4660791.002 9806...>, <POLYGON ((4772355.486 9504403.634, 4772769.694 9503950.325, 4772565.986 950...>, <POLYGON ((4791714.607 9514666.672, 4791436.205 9514247.246, 4791171.383 951...>, <MULTIPOLYGON (((4816424.477 9571263.466, 4816302.251 9570756.426, 4816601.0...>, <POLYGON ((4962850.317 9345612.416, 4963250.944 9343971.302, 4965858.416 933...>, <POLYGON ((4794953.576 9501609.317, 4794892.463 9501264.249, 4794763.448 950...>, <POLYGON ((4750884.586 9445078.684, 4750185.186 9444130.723, 4748949.353 944...>, <MULTIPOLYGON (((4559398.373 9309734.956, 4559384.792 9309368.539, 4559228.6...>, <POLYGON ((4840889.896 9504281.85, 4844033.801 9501365.74, 4850043.208 94956...>, <POLYGON ((4782323.634 9253923.674, 4782303.263 9253298.775, 4782181.038 925...>, <MULTIPOLYGON (((4686478.673 9860869.7, 4686933.623 9861227.263, 4687049.058...>, <POLYGON ((5113085.51 9643567.457, 5112773.157 9643202.651, 5112229.933 9642...>, <POLYGON ((4680482.846 9800380.1, 4680482.846 9799806.5, 4680163.702 9799948...>, <MULTIPOLYGON (((4713592.306 9454740.396, 4713734.902 9454259.71, 4713938.61...>, <POLYGON ((4694348.621 9758016.604, 4691218.297 9758239.348, 4687938.586 975...>, <POLYGON ((4987261.414 9595760.368, 4987173.14 9595361.6, 4987003.383 959503...>, <POLYGON ((4769673.321 9669985.809, 4770875.203 9668304.021, 4771499.91 9667...>, <POLYGON ((5003592.064 9396756.848, 5003347.614 9396289.311, 5002994.518 939...>, <POLYGON ((4838852.809 9603546.163, 4838852.809 9603093.36, 4838961.453 9602...>, <POLYGON ((5048638.856 9606756.275, 5048448.728 9606317.002, 5048095.633 960...>, <POLYGON ((4854314.302 9332054.933, 4859474.923 9322286.751, 4862170.669 931...>, <POLYGON ((4844203.558 9609655.424, 4838418.23 9606148.051, 4832985.997 9602...>, <POLYGON ((4809790.362 9787443.309, 4810326.795 9787463.555, 4810673.1 97872...>, <POLYGON ((4748392.549 9626818.876, 4748324.646 9626278.338, 4748182.05 9625...>, <MULTIPOLYGON (((4520279.505 9359919.431, 4519933.2 9360231.301, 4519681.96 ...>, <POLYGON ((4936442.874 9664109.579, 4939125.039 9655754.021, 4939681.843 965...>, <MULTIPOLYGON (((4916506.579 9608371.429, 4916703.497 9607965.953, 4916370.7...>, <POLYGON ((4658197.11 9206593.596, 4657674.258 9206539.208, 4652194.493 9202...>, <POLYGON ((4916282.499 9257462.364, 4915705.325 9257618.577, 4915372.6 92576...>, <POLYGON ((4706014.341 9706554.006, 4706238.421 9702711.962, 4706306.324 969...>, <POLYGON ((4776395.71 9561602.188, 4776205.582 9561196.514, 4776117.308 9560...>, <POLYGON ((4780266.176 9675132.339, 4780497.046 9674895.955, 4780822.98 9674...>, <POLYGON ((4881237.806 9727261.379, 4881550.16 9726660.523, 4881706.336 9726...>, <POLYGON ((4774134.543 9717512.349, 4774637.024 9716540.109, 4780965.576 971...>, <POLYGON ((4908752.066 9278757.524, 4908249.585 9278553.847, 4907169.929 927...>, <POLYGON ((4909417.515 9415083.072, 4909797.771 9414547.922, 4910266.301 941...>, <POLYGON ((4928600.088 9331390.206, 4928722.313 9330813.65, 4928253.783 9330...>, <POLYGON ((4901907.453 9278132.912, 4902355.612 9278499.533, 4902756.239 927...>, <POLYGON ((5057052.027 9701152.156, 5057160.672 9700855.048, 5057384.751 970...>, <POLYGON ((4763018.836 9511953.893, 4763399.092 9511750.938, 4763711.446 951...>, <MULTIPOLYGON (((4824491.343 9471284.887, 4824545.665 9470885.534, 4824341.9...>, <POLYGON ((4737555.244 9696459.12, 4738234.273 9696405.098, 4738478.724 9696...>, <POLYGON ((4762278.694 9646114.315, 4762733.644 9645803.561, 4764213.927 964...>, <POLYGON ((4782011.281 9728274.052, 4782167.457 9727821.726, 4782500.182 972...>, <POLYGON ((4858897.748 9526835.871, 4864248.498 9523345.611, 4866176.94 9522...>, <POLYGON ((4742070.788 9597754.185, 4741697.322 9597923.151, 4741384.968 959...>, <POLYGON ((4784713.817 9753095.905, 4784740.978 9750497.122, 4784740.978 974...>, <POLYGON ((4771988.811 9588764.791, 4772457.341 9588453.865, 4772776.485 958...>, <POLYGON ((4883376.748 9590468.108, 4883274.894 9589981.449, 4883329.216 958...>, <POLYGON ((4782982.292 9480801.047, 4785372.475 9480577.709, 4793493.663 947...>, <POLYGON ((4571233.851 9313582.2, 4571288.173 9312971.544, 4571933.251 93130...>, <MULTIPOLYGON (((4826100.642 9787875.224, 4826243.238 9787544.539, 4825700.0...>, <POLYGON ((4849812.339 9434447.259, 4849533.937 9433648.145, 4849398.131 943...>, <POLYGON ((4881794.61 9670735.514, 4881740.288 9670215.449, 4881203.855 9670...>, <POLYGON ((4694348.621 9758016.604, 4694946.166 9757895.107, 4695856.065 975...>, <POLYGON ((4748915.401 9726363.47, 4749193.803 9726066.416, 4749580.85 97254...>, <POLYGON ((4885454.577 9636149.485, 4885732.979 9635784.654, 4894954.195 963...>, <POLYGON ((4958022.42 9740938.629, 4958524.901 9740621.353, 4958891.577 9740...>, <POLYGON ((4882928.589 9727369.398, 4882419.317 9727382.9, 4882283.511 97269...>, <POLYGON ((4647651.788 9183745.173, 4629209.357 9175385.159, 4623132.046 917...>, <POLYGON ((4516639.909 9356414.182, 4516931.892 9356176.875, 4516755.344 935...>, <POLYGON ((4872281.412 9693960.6, 4872349.315 9693595.948, 4872525.863 96931...>, <POLYGON ((4741738.063 9248781.627, 4741337.436 9248435.183, 4740970.76 9247...>, <POLYGON ((4827601.296 9402760.003, 4827967.972 9402631.273, 4827893.278 940...>, <MULTIPOLYGON (((4746199.285 9761701.968, 4745914.092 9761512.977, 4745520.2...>, <POLYGON ((4742070.788 9597754.185, 4741772.015 9596591.693, 4741595.467 959...>, <POLYGON ((4707929.203 9587189.872, 4709674.308 9575874.019, 4710278.644 957...>, <POLYGON ((4706014.341 9706554.006, 4701009.897 9707958.451, 4693486.254 971...>, <POLYGON ((5019501.716 9644405.157, 5019243.685 9643986.308, 5018802.316 964...>, <POLYGON ((4857240.917 9663454.395, 4858823.055 9663467.904, 4861912.638 966...>, <POLYGON ((5034263.81 9661603.65, 5033910.714 9661394.257, 5033788.489 96489...>, <POLYGON ((4998288.847 9728442.83, 4998445.023 9727936.495, 4998628.361 9727...>, <POLYGON ((4852691.422 9463913.433, 4852202.521 9463676.506, 4850830.882 946...>, <POLYGON ((4932769.327 9642229.827, 4939091.088 9640115.257, 4948970.961 963...>, <POLYGON ((4800915.451 9704717.401, 4800616.679 9704271.751, 4800168.519 970...>, <POLYGON ((5083941.58 9646289.958, 5080478.532 9638797.853, 5080492.112 9638...>, <POLYGON ((4832300.177 9252408.961, 4833155.754 9251919.897, 4838995.405 924...>, <POLYGON ((4851788.313 9395503.299, 4852467.342 9394934.112, 4852800.067 939...>, <POLYGON ((4800603.098 9256491.115, 4802246.348 9244841.543, 4803230.941 923...>, <POLYGON ((4539903.447 9430830.855, 4539726.899 9430532.866, 4539516.4 94302...>, <POLYGON ((5002301.909 9320373.625, 5002478.456 9319376.332, 5002566.73 9317...>, <POLYGON ((4816275.09 9680251.638, 4815867.673 9679900.453, 4815433.094 9679...>, <POLYGON ((4635171.233 9630075.56, 4635279.877 9629643.143, 4635293.458 9629...>, <POLYGON ((4588243.53 9314654.226, 4588922.559 9314620.302, 4589289.235 9314...>, <POLYGON ((4915881.872 9463155.262, 4916282.499 9463432.808, 4916635.595 946...>, <POLYGON ((4927710.56 9300478.801, 4927730.93 9297730.166, 4929523.567 92949...>, <POLYGON ((4875662.977 9718268.53, 4875954.96 9718410.314, 4876253.733 97185...>, <MULTIPOLYGON (((4817504.133 9462126.304, 4822440.675 9457712.45, 4831553.24...>, <MULTIPOLYGON (((4848508.603 9721063.665, 4848243.781 9720577.559, 4847883.8...>, <POLYGON ((4843646.754 9522080.694, 4844712.83 9522371.559, 4844223.929 9520...>, <POLYGON ((4820729.521 9574474.652, 4832422.403 9574366.488, 4833053.9 95730...>, <POLYGON ((4421120.882 9452851.487, 4422832.036 9448714.673, 4422424.618 944...>, <POLYGON ((4584515.66 9259778.347, 4585629.268 9259241.809, 4585887.299 9258...>, <POLYGON ((4738200.322 9248992.209, 4737901.549 9248625.387, 4737677.469 924...>, <POLYGON ((4756493.366 9446825.606, 4756737.817 9446527.685, 4756860.042 944...>, <POLYGON ((4785005.799 9445085.455, 4784937.896 9444719.814, 4784815.671 944...>, <POLYGON ((4797588.209 9690719.206, 4797968.465 9690388.309, 4798267.238 969...>, <POLYGON ((4761165.087 9587311.54, 4761076.813 9586703.196, 4760920.636 9586...>, <POLYGON ((4912758.338 9416383.671, 4912432.404 9416112.715, 4911787.327 941...>, <POLYGON ((4565434.942 9407278.95, 4564912.089 9407068.931, 4564511.462 9407...>, <POLYGON ((4793880.71 9821372.776, 4794118.37 9820434.864, 4794403.562 98198...>, <POLYGON ((4613999.105 9363410.924, 4614067.008 9362855.01, 4614100.959 9361...>, <POLYGON ((4877679.694 9296651.036, 4878222.917 9296393.128, 4882317.463 929...>, <POLYGON ((4955652.608 9305045.992, 4955998.913 9304781.335, 4956487.814 930...>, <POLYGON ((4717795.496 9128469.702, 4717422.03 9128204.124, 4717761.545 9127...>, <MULTIPOLYGON (((4882127.335 9513137.785, 4881808.191 9512670.996, 4881203.8...>, <POLYGON ((5020561.002 9411567.264, 5020180.746 9410788.207, 5019814.07 9409...>, <POLYGON ((4821184.471 9496135.418, 4821116.568 9495790.326, 4821286.325 949...>, <POLYGON ((4722046.219 9591130.502, 4721278.916 9591164.297, 4720633.838 959...>, <POLYGON ((4828314.277 9427390.356, 4828470.453 9427112.671, 4828837.129 942...>, <MULTIPOLYGON (((4739266.397 9819517.191, 4739103.43 9819173.063, 4739001.57...>, <POLYGON ((4755977.304 9774795.832, 4755732.854 9774384.133, 4755400.129 977...>, <POLYGON ((5086644.116 9702414.858, 5087567.596 9701341.224, 5087845.998 970...>, <POLYGON ((4995192.474 9653018.238, 4995206.054 9652606.176, 4995348.651 965...>, <POLYGON ((4916751.03 9608783.661, 4917138.076 9608972.881, 4917538.703 9608...>, <MULTIPOLYGON (((4767683.766 9640709.773, 4767384.993 9640290.91, 4767670.18...>, <POLYGON ((4455968.657 9427654.495, 4456199.527 9427336.174, 4455608.771 942...>, <POLYGON ((4797499.935 9616034.614, 4797153.63 9616169.762, 4796352.376 9616...>, <POLYGON ((4742586.85 9566632.4, 4742193.013 9566165.9, 4741785.595 9565739....>, <POLYGON ((4676945.104 9665237.568, 4676836.46 9664683.706, 4676578.429 9664...>, <POLYGON ((5228866.766 9099328.501, 5229437.15 9099076.379, 5230639.032 9097...>, <POLYGON ((5042262.773 9363573.63, 5041875.726 9363363.468, 5042052.274 9363...>, <POLYGON ((5044388.134 9352034.034, 5044068.99 9351247.473, 5043620.831 9350...>, <POLYGON ((5240593.599 9242851.009, 5240613.97 9242504.527, 5240681.873 9241...>, <POLYGON ((5256815.605 9206702.373, 5256713.75 9205702.977, 5255247.047 9203...>, <POLYGON ((5111842.887 9428121.815, 5111374.357 9426557.296, 5111231.761 942...>, <POLYGON ((5071780.169 9462126.304, 5076431.518 9453596.224, 5071956.716 944...>, <POLYGON ((4929842.711 9083564.674, 4926549.42 9062605.528, 4924892.589 9051...>, <POLYGON ((5031194.598 9311824.849, 5031486.58 9309124.259, 5031561.274 9308...>, <POLYGON ((5029456.283 9334435.684, 5029483.445 9333777.765, 5029272.945 933...>, <POLYGON ((4999232.697 8989971.751, 5000712.981 8988065.586, 5001310.526 898...>, <POLYGON ((4881081.63 9202296.721, 4878637.125 9200120.946, 4880803.228 9194...>, <POLYGON ((5151348.801 9327591.617, 5144259.737 9319607, 5142915.26 9318066....>, <POLYGON ((5171061.017 9203622.537, 5172853.654 9201745.987, 5173485.151 920...>, <POLYGON ((5072425.246 9279354.973, 5076784.613 9279334.605, 5076832.145 927...>, <POLYGON ((5232764.393 9375470.332, 5232594.636 9375083.978, 5232458.83 9374...>, <POLYGON ((4922903.033 8882538.373, 4922957.356 8882195.794, 4923127.113 888...>, <POLYGON ((4786574.356 9127523.147, 4793826.387 9087627.145, 4794539.368 908...>, <POLYGON ((5100917.308 9284976.103, 5101148.178 9284650.256, 5101161.759 928...>, <POLYGON ((5104808.145 9536419.813, 5105100.128 9536575.366, 5105235.933 953...>, <POLYGON ((4704391.462 8911871.59, 4715507.168 8918436.316, 4715452.846 8917...>, <POLYGON ((5053134.029 9366129.408, 5053310.576 9365709.101, 5053201.932 936...>, <POLYGON ((5122557.966 9579990.875, 5122164.13 9572662.881, 5122143.759 9572...>, <POLYGON ((5141244.848 9117423.061, 5141156.574 9117109.739, 5140300.997 911...>, <POLYGON ((5223482.065 9196224.713, 5223950.595 9195891.513, 5225573.475 919...>, <POLYGON ((5070354.207 9411099.831, 5070598.658 9410720.463, 5070992.495 941...>, <POLYGON ((4915094.198 9161103.794, 4916146.694 9160511.763, 4921877.699 915...>, <POLYGON ((5252951.929 9110127.529, 5253474.781 9110147.966, 5254235.294 911...>, <POLYGON ((5111197.809 9527410.803, 5111197.809 9519909.321, 5111197.809 951...>, <POLYGON ((5190372.605 9227365.736, 5187962.052 9225673.558, 5187459.57 9225...>, <POLYGON ((4853879.723 9001768.809, 4853913.674 9001119.959, 4854259.979 900...>, <POLYGON ((5170028.892 9650066.22, 5165601.623 9647769.403, 5164929.384 9647...>, <POLYGON ((5018422.06 8973011.144, 5018021.433 8972580.541, 5017702.289 8972...>, <POLYGON ((5105032.225 9500513.214, 5105052.596 9499126.149, 5107415.617 949...>, <POLYGON ((5152279.071 9543182.709, 5153304.405 9550925.579, 5160590.388 955...>, <POLYGON ((5032050.175 9110795.143, 5035689.771 9109602.968, 5036681.153 910...>, <POLYGON ((5136674.982 9654977.2, 5143091.807 9647208.702, 5148354.283 96408...>, <POLYGON ((5196517.819 9467914.01, 5196626.463 9467534.946, 5196517.819 9467...>, <POLYGON ((5089523.2 9515268.748, 5089855.924 9514822.266, 5090256.551 95145...>, <POLYGON ((5069641.227 9260477.877, 5070198.031 9260457.502, 5070978.914 926...>, <POLYGON ((5186590.413 9677030.152, 5186658.316 9676611.42, 5186800.912 9675...>, <POLYGON ((5277451.3 9201004.866, 5276975.979 9199366.203, 5276894.496 91984...>, <POLYGON ((5126706.834 9164982.433, 5127182.155 9164771.498, 5128030.941 916...>, <POLYGON ((5149399.988 9079631.35, 5149012.941 9079017.801, 5147186.353 9076...>, <POLYGON ((5222382.038 9214703.627, 5222449.941 9212596.368, 5222680.811 921...>, <POLYGON ((5050261.736 9579308.124, 5051096.942 9578916.048, 5051117.312 957...>, <POLYGON ((5081449.543 9493604.711, 5080879.159 9493286.675, 5080478.532 949...>, <POLYGON ((4963855.28 9179487.12, 4953262.425 9168738.289, 4947334.501 91627...>, <POLYGON ((5015583.718 9104322.951, 5015407.171 9103975.47, 5015006.544 9103...>, <POLYGON ((5140246.675 9494403.178, 5139601.597 9492176.923, 5136104.597 948...>, <POLYGON ((5115971.384 9071402.25, 5116860.912 9071334.065, 5118259.712 9068...>, <POLYGON ((4970985.086 9029584.403, 4968459.097 9029263.615, 4968941.208 900...>, <POLYGON ((5147478.335 9614973.696, 5144470.236 9607898.374, 5143349.838 960...>, <POLYGON ((5234455.176 9156285.674, 5235256.43 9155047.039, 5236519.424 9154...>, <POLYGON ((5177858.098 9416905.258, 5177878.469 9416580.113, 5178184.032 941...>, <POLYGON ((5139696.661 9617095.521, 5137428.704 9616413.028, 5136586.708 961...>, <POLYGON ((5176432.137 9629683.682, 5176309.912 9629298.559, 5176045.09 9628...>, <POLYGON ((5124649.376 9482188.439, 5124058.621 9482384.702, 5123556.139 948...>, <POLYGON ((5181660.661 9606195.357, 5181395.84 9605904.76, 5181205.712 96054...>, <POLYGON ((5090324.454 9433505.929, 5089923.827 9433472.068, 5089692.957 943...>, <POLYGON ((4941060.272 9096296.125, 4942296.105 9096527.819, 4941936.22 9094...>, <POLYGON ((5112141.66 9194885.099, 5116514.607 9188499.334, 5106858.813 9183...>, <POLYGON ((5171536.337 9137328.24, 5174666.661 9136803.992, 5176880.296 9134...>, <POLYGON ((5087879.949 9040510.192, 5091580.658 9036866.309, 5096856.714 903...>, <POLYGON ((4800379.018 8852344.503, 4796250.521 8850952.424, 4799632.086 884...>, <POLYGON ((4774833.943 8815603.593, 4776680.902 8814889.653, 4777448.205 881...>, <POLYGON ((4923969.109 9046098.226, 4921911.651 9032908.169, 4911821.278 902...>, <POLYGON ((4872627.717 8907722.681, 4873381.439 8906825.743, 4873782.067 890...>, <POLYGON ((4854816.783 9023727.914, 4851801.894 9021748.259, 4850308.03 9021...>, <POLYGON ((5027969.21 9386863.318, 5027392.035 9382864.821, 5026556.829 9377...>, <POLYGON ((5243954.793 9139057.532, 5244409.743 9138880.521, 5247180.181 913...>, <POLYGON ((5044333.811 9418801.907, 5044401.714 9416925.58, 5044469.617 9415...>, <POLYGON ((5074380.85 8980289.661, 5074991.976 8980173.489, 5075440.136 8980...>, <POLYGON ((5154173.562 9234881.324, 5154261.836 9232951.566, 5153908.741 923...>, <POLYGON ((5187683.65 9541329.729, 5188016.374 9541539.374, 5188450.953 9541...>, <POLYGON ((5140375.691 9031174.657, 5141068.3 9030806.106, 5141367.073 90305...>, <POLYGON ((5082685.376 9340682.16, 5092762.168 9332645.043, 5095444.334 9330...>, <POLYGON ((4940204.695 9121639.082, 4945154.818 9105862.737, 4945243.092 909...>, <POLYGON ((5105656.932 9593029.787, 5105656.932 9590779.028, 5105656.932 958...>, <POLYGON ((5030882.245 8963051.376, 5034399.615 8958805.56, 5034766.291 8958...>, <POLYGON ((5035764.464 9158606.327, 5035689.771 9155040.233, 5033041.557 915...>, <POLYGON ((5131290.281 9184724.609, 5135683.599 9177215.098, 5140002.225 917...>, <POLYGON ((5017654.757 9257258.607, 5019080.718 9255159.865, 5022985.136 924...>, <POLYGON ((5097155.487 9287800.031, 5096809.182 9287542.082, 5096965.359 928...>, <POLYGON ((5041896.097 9246988.246, 5037170.054 9240955.517, 5034678.017 924...>, <POLYGON ((5252755.01 9197346.696, 5254269.245 9197101.902, 5252530.931 9192...>, <POLYGON ((5211904.618 9251573.474, 5212257.714 9245989.632, 5212712.663 923...>, <POLYGON ((5282781.678 9215906.765, 5281532.265 9214737.614, 5281423.62 9214...>, <POLYGON ((5192443.644 9212643.952, 5195458.533 9212310.862, 5196551.77 9212...>, <POLYGON ((4742797.349 8974084.213, 4764723.199 8964261.451, 4748460.452 893...>, <POLYGON ((4936884.243 9252599.152, 4937631.175 9252354.621, 4938255.882 925...>, <POLYGON ((4948081.433 9031440.831, 4948611.076 9030976.732, 4949093.187 903...>, <POLYGON ((5067373.27 9320210.803, 5067026.965 9319444.176, 5062755.872 9319...>, <POLYGON ((5135357.665 9695203.113, 5135296.553 9694217.207, 5135181.118 969...>, <POLYGON ((5145760.392 9276822.562, 5146242.502 9276598.509, 5153324.776 927...>, <POLYGON ((5155015.559 9243027.647, 5154872.962 9242402.619, 5153840.838 923...>, <POLYGON ((5152645.747 9163526.28, 5152326.603 9163424.211, 5150601.869 9155...>, <POLYGON ((5187962.052 9190308.378, 5187996.003 9188757.773, 5186705.848 918...>, <POLYGON ((5017546.113 9185023.877, 5022441.913 9181459.747, 5020350.503 917...>, <POLYGON ((5211381.766 9142182.35, 5212468.213 9138676.276, 5212814.517 9138...>, <POLYGON ((5217676.366 9193647.454, 5217866.494 9190872.841, 5218076.993 919...>, <POLYGON ((5067373.27 9320210.803, 5067509.075 9319898.726, 5067855.38 93195...>, <POLYGON ((5124649.376 9482188.439, 5126469.174 9481687.628, 5131412.506 948...>, <POLYGON ((4949235.783 9241580.561, 4949704.313 9241893.081, 4949948.763 924...>, <POLYGON ((5093617.745 9047094.304, 5090181.858 9047790.181, 5087879.949 904...>, <POLYGON ((5113852.813 9612182.82, 5114124.425 9610601.516, 5120989.409 9609...>, <POLYGON ((5066850.417 9615946.768, 5066993.013 9615271.024, 5067950.444 961...>, <POLYGON ((5078346.38 9496534.64, 5076241.39 9490126.546, 5073925.901 948304...>, <POLYGON ((5179671.106 9459486.147, 5179351.962 9459188.277, 5178937.755 945...>, <POLYGON ((4889657.768 8842591.918, 4889325.043 8842825.134, 4888958.368 884...>, <POLYGON ((4997895.01 9034641.608, 4997908.59 9031836.676, 4998119.089 90219...>, <POLYGON ((5044388.134 9352034.034, 5042839.947 9352122.183, 5041427.567 935...>, <POLYGON ((5064134.301 9506135.656, 5064480.606 9505722.951, 5062755.872 950...>, <POLYGON ((5168114.03 9071913.632, 5167645.5 9071736.354, 5167591.178 906757...>, <POLYGON ((5160047.164 9523088.571, 5159938.52 9522736.83, 5160305.195 95226...>, <POLYGON ((5054071.089 9401262.653, 5053799.477 9400639.312, 5053480.334 940...>, <POLYGON ((5191139.908 9263323.442, 5187283.022 9265951.552, 5185857.061 926...>, <POLYGON ((4920207.288 9195089.103, 4918509.715 9191008.855, 4917552.284 918...>, <POLYGON ((5174041.955 9678705.065, 5173763.553 9678097.236, 5173566.634 967...>, <POLYGON ((5088511.446 9620156.55, 5087913.901 9619670.035, 5086365.714 9618...>, <POLYGON ((5059319.984 9614595.276, 5056793.996 9611871.967, 5056549.545 961...>, <POLYGON ((4912031.777 9115066.277, 4912099.68 9114603.08, 4911957.084 91141...>, <POLYGON ((5252809.333 9185513.585, 5253868.618 9183377.88, 5254024.795 9183...>, <POLYGON ((4919419.614 9229567.522, 4916737.449 9225292.98, 4915603.47 92233...>, <POLYGON ((5221736.96 9177153.874, 5221404.236 9176698.096, 5220847.432 9176...>, <POLYGON ((5049596.287 9594591.094, 5049962.963 9594374.811, 5050709.895 959...>, <POLYGON ((5034942.839 9547416.014, 5037950.938 9548984.854, 5039315.786 954...>, <MULTIPOLYGON (((5042262.773 9363573.63, 5042351.046 9363166.865, 5042575.12...>, <POLYGON ((5192878.222 9467670.326, 5191533.745 9463013.105, 5190909.038 946...>, <POLYGON ((5055259.39 9385019.974, 5055401.986 9384477.804, 5055904.468 9384...>, <POLYGON ((5224385.174 9249929.63, 5224317.271 9247103.73, 5224351.222 92457...>, <POLYGON ((4797778.337 8949484.992, 4806021.75 8944341.633, 4806354.475 8944...>, <POLYGON ((4925483.344 8890642.827, 4925938.294 8890307.175, 4926298.179 888...>, <POLYGON ((5093638.116 9601234.819, 5093672.068 9600822.556, 5093685.648 960...>, <POLYGON ((5119196.772 9642060.933, 5119006.644 9640966.495, 5119318.998 963...>, <POLYGON ((5041896.097 9246988.246, 5043790.588 9245765.451, 5043763.427 924...>, <POLYGON ((5003347.614 9384355.815, 5003069.212 9384565.907, 5002668.584 938...>, <POLYGON ((5104685.92 9486512.88, 5105568.658 9485301.52, 5104366.776 948432...>, <POLYGON ((5054145.782 9553075.879, 5054424.184 9552629.595, 5054756.908 955...>, <POLYGON ((5122734.514 9286184.436, 5122911.062 9282505.049, 5123080.819 928...>, <POLYGON ((5113363.912 9427925.406, 5122734.514 9426658.889, 5124615.425 942...>, <POLYGON ((5119325.788 9264070.463, 5119943.704 9263825.984, 5118728.242 926...>, <POLYGON ((5047606.732 9365044.74, 5047559.2 9364509.179, 5047226.476 936163...>, <POLYGON ((5239391.717 9192715.8, 5238991.09 9188744.171, 5238923.187 918804...>, <POLYGON ((5086229.908 9123505.176, 5085910.765 9123450.692, 5085605.202 912...>, <POLYGON ((5027120.423 9146273.569, 5029293.316 9143884.232, 5034902.097 913...>, <POLYGON ((4843314.03 9061446.134, 4844271.461 9061009.648, 4852535.245 9057...>, <POLYGON ((5003347.614 9384355.815, 5003884.047 9384145.722, 5004440.85 9383...>, <POLYGON ((5154003.805 9220814.183, 5154485.916 9220773.403, 5154906.914 922...>, <POLYGON ((4843042.418 8883607.197, 4842621.42 8879420.787, 4842132.519 8878...>, <POLYGON ((5149943.211 9683695.902, 5149678.39 9683270.439, 5149556.164 9682...>, <POLYGON ((5061710.167 9375870.239, 5061845.973 9375138.204, 5061825.602 937...>, <POLYGON ((5197094.993 9160538.983, 5200795.702 9160348.443, 5203267.368 915...>, <POLYGON ((5074903.703 9413694.383, 5074618.51 9413416.642, 5073885.159 9412...>, <POLYGON ((5255199.515 9110202.466, 5254235.294 9110168.404, 5253474.781 911...>, <POLYGON ((4970828.909 9137539.298, 4970951.134 9137130.797, 4973653.67 9127...>, <POLYGON ((5187412.038 9518326.414, 5195750.516 9515985.822, 5197027.09 9519...>, <POLYGON ((5086229.908 9123505.176, 5086644.116 9123396.209, 5087065.114 912...>, <POLYGON ((5114735.551 9112927.355, 5117017.089 9111564.931, 5120989.409 911...>, <POLYGON ((5173688.859 9224559.001, 5173831.456 9223335.679, 5176445.718 922...>, <POLYGON ((5238346.012 9324023.435, 5239303.444 9322008.605, 5239568.265 932...>, <POLYGON ((5251838.321 9268986.961, 5252109.933 9268335.075, 5252320.432 926...>, <POLYGON ((5139445.421 9603410.998, 5139520.114 9598321.908, 5139567.646 959...>, <POLYGON ((5167102.277 9537610.121, 5164094.178 9529176.158, 5162831.184 952...>, <POLYGON ((5041977.58 9568261.75, 5041631.276 9565672.354, 5040375.072 95646...>, <POLYGON ((4896400.527 9249950.009, 4897079.556 9249372.614, 4897480.183 924...>, <POLYGON ((5093930.099 9374460.385, 5094575.176 9373762.225, 5095111.609 937...>, <POLYGON ((5176411.766 9079999.475, 5176846.345 9079685.887, 5177783.405 907...>, <POLYGON ((4883919.971 8935619.578, 4881169.903 8934230.703, 4867840.562 892...>, <POLYGON ((5075738.908 9309226.042, 5075786.44 9308839.265, 5075786.44 93080...>, <POLYGON ((4819629.494 8940497.337, 4819670.236 8939991.119, 4820016.541 894...>, <POLYGON ((5046269.044 9148696.817, 5044557.891 9147165.284, 5044680.116 914...>, <POLYGON ((4786574.356 9127523.147, 4784157.013 9127993.022, 4771289.411 913...>, <POLYGON ((4996075.212 9142672.498, 4995348.651 9142114.273, 4994995.555 913...>, <POLYGON ((5131799.553 9217130.265, 5135928.05 9213799.556, 5136172.5 921358...>, <POLYGON ((5148245.638 9338789.973, 5138318.232 9332889.224, 5137571.3 93324...>, <POLYGON ((4698898.116 9069479.4, 4698775.891 9069008.902, 4699006.761 90687...>, <POLYGON ((4867195.484 9012292.369, 4882127.335 9006870.45, 4888333.661 9004...>, <POLYGON ((5164942.964 9234820.171, 5165812.122 9234324.148, 5167353.518 923...>, <POLYGON ((5096055.46 9254290.459, 5096333.862 9253658.772, 5096591.893 9253...>, <POLYGON ((5206581.03 9252266.318, 5204883.457 9239576.316, 5204292.702 9236...>, <POLYGON ((5038534.903 9326723.334, 5032905.751 9326845.437, 5032450.802 932...>, <POLYGON ((5130074.819 9186193.726, 5127114.252 9179242.236, 5126679.673 917...>, <POLYGON ((5001880.911 9033679.353, 5001948.814 9032798.973, 5002580.311 902...>, <POLYGON ((5104509.372 9329925.065, 5101806.836 9328290.304, 5095444.334 933...>, <POLYGON ((5171936.964 9102333.415, 5172072.77 9101910.968, 5172853.654 9100...>, <POLYGON ((5064392.332 9225802.682, 5064412.703 9225381.329, 5064500.976 922...>, <POLYGON ((4774426.525 8892060.747, 4772403.019 8887752.014, 4765694.211 887...>, <POLYGON ((5045556.064 9334001.594, 5041183.116 9331268.112, 5040008.396 932...>, <POLYGON ((5191139.908 9263323.442, 5189897.285 9260708.787, 5192022.646 926...>, <POLYGON ((5195879.531 9589427.196, 5196015.337 9588987.846, 5195927.063 958...>, <POLYGON ((5128940.84 9407536.393, 5129572.337 9407455.095, 5130095.19 94074...>, <POLYGON ((5132566.856 9232407.96, 5132926.741 9230838.263, 5133259.465 9229...>, <POLYGON ((5070279.514 9583303.157, 5068188.105 9581775.466, 5067916.493 957...>, <POLYGON ((5095967.186 9090039.911, 5097922.79 9088485.941, 5105358.159 9082...>, <POLYGON ((5119719.625 9593381.253, 5121953.63 9591596.878, 5122646.24 95910...>, <POLYGON ((5037835.503 9185268.731, 5041964 9185214.319, 5044001.087 9182194...>, <POLYGON ((5173043.782 9259221.434, 5172629.574 9257571.034, 5172493.768 925...>, <POLYGON ((5245733.849 9224300.746, 5249027.141 9221983.194, 5249583.944 922...>, <POLYGON ((5073728.982 8997424.729, 5073701.821 8996830.455, 5073240.081 899...>, <POLYGON ((5200598.784 9260165.467, 5201501.892 9254147.821, 5200462.978 925...>, <POLYGON ((5085829.281 9372250.648, 5086073.732 9371606.692, 5085985.458 937...>, <POLYGON ((5086942.889 9175698.09, 5092293.638 9166390.914, 5087187.339 9155...>, <POLYGON ((5229409.989 9398057.804, 5230068.647 9397556.397, 5230835.95 9397...>, <POLYGON ((5027324.132 9368488.494, 5028349.466 9367153.045, 5028593.916 936...>, <POLYGON ((5044068.99 9031597.804, 5046391.27 9017631.633, 5046479.543 90171...>, <POLYGON ((4814529.985 8803876.58, 4814020.713 8803457.682, 4813029.331 8802...>, <POLYGON ((4868254.77 9177868.145, 4873795.647 9164982.433, 4875051.851 9168...>, <POLYGON ((5149658.019 9471575.94, 5150948.174 9467758.323, 5150513.595 9465...>, <POLYGON ((5244110.97 9170568.481, 5244531.968 9170568.481, 5244864.692 9170...>, <POLYGON ((5118259.712 9140528.061, 5118748.613 9140140.009, 5121865.357 913...>, <POLYGON ((5058240.328 9146293.99, 5065003.458 9140119.585, 5066205.339 9138...>, <POLYGON ((5183222.428 9226652.173, 5183874.296 9226074.521, 5187459.57 9225...>, <POLYGON ((5009798.39 9087872.517, 5009879.874 9085214.247, 5011957.703 9083...>, <POLYGON ((5078679.104 9269781.436, 5079134.054 9269659.21, 5079833.454 9269...>, <POLYGON ((5023528.359 9466979.884, 5028580.336 9466438.357, 5029884.072 946...>, <POLYGON ((5046567.817 9510343.772, 5044870.244 9509356.034, 5036491.025 950...>, <POLYGON ((4853601.321 9211352.364, 4853438.354 9210924.094, 4853126.001 921...>, <POLYGON ((5152122.894 9305500.655, 5152462.409 9305256.359, 5152815.504 930...>, <POLYGON ((5005405.072 8981875.036, 5006742.759 8979872.806, 5006797.082 897...>, <POLYGON ((5094996.174 9274351.142, 5094507.273 9274161.028, 5094018.372 927...>, <POLYGON ((5178116.129 9163158.832, 5178917.384 9162798.186, 5179596.413 916...>, <POLYGON ((5235677.428 9207042.299, 5235942.249 9206702.373, 5237666.983 920...>, <POLYGON ((5120907.926 9203785.712, 5128927.26 9202228.729, 5134936.667 9196...>, <MULTIPOLYGON (((5448403.672 9177031.427, 5447222.161 9176942.992, 5444173.3...>, <POLYGON ((5487305.25 9539415.842, 5487427.475 9539070.932, 5487461.427 9538...>, <POLYGON ((5318695.529 9687565.52, 5319259.123 9687707.337, 5319714.072 9687...>, <POLYGON ((5439345.423 9332990.966, 5439209.617 9331458.035, 5439033.07 9330...>, <POLYGON ((5324385.793 9294893.164, 5324535.179 9294506.289, 5324446.905 929...>, <POLYGON ((5280153.836 9606073.712, 5278361.199 9604451.763, 5278653.181 960...>, <POLYGON ((5369344.311 9222785.174, 5368135.639 9222710.414, 5365297.297 922...>, <POLYGON ((5538103.419 9405761.377, 5537716.372 9404826.426, 5535170.013 939...>, <POLYGON ((5383732.938 9659556.989, 5382673.653 9656105.277, 5382374.88 9655...>, <POLYGON ((5352355.002 9257897.043, 5352158.084 9257374.069, 5351777.827 925...>, <POLYGON ((5422478.34 9552521.404, 5422199.938 9552196.832, 5421622.763 9552...>, <POLYGON ((5511560.17 9576948.88, 5511858.943 9576779.878, 5512191.668 95762...>, <POLYGON ((5607411.921 9486045.934, 5607377.97 9485477.473, 5607113.149 9485...>, <POLYGON ((5479109.369 9515512.284, 5480610.023 9514281.071, 5480766.2 95139...>, <POLYGON ((5260760.764 9479068.464, 5261073.117 9478635.312, 5261276.826 947...>, <POLYGON ((5320549.278 9211196.012, 5322477.721 9210400.647, 5323163.54 9210...>, <POLYGON ((5440683.111 9517805.537, 5441239.914 9517704.067, 5441681.283 951...>, <POLYGON ((5346114.725 9324810.353, 5346073.983 9324321.922, 5345958.548 932...>, <POLYGON ((5372284.507 9244454.312, 5372359.2 9243897.238, 5372916.004 92436...>, <POLYGON ((5461026.823 9240187.789, 5461984.254 9240051.906, 5462364.51 9240...>, <POLYGON ((5481377.326 9257041.265, 5481777.953 9256382.443, 5482124.258 925...>, <POLYGON ((5487407.105 9433695.55, 5487651.555 9433214.723, 5487862.054 9432...>, <POLYGON ((5416204.111 9195177.505, 5416706.592 9194953.101, 5417052.897 919...>, <POLYGON ((5492791.805 9531523.143, 5493158.481 9529906.638, 5493939.365 952...>, <POLYGON ((5471164.728 9225204.631, 5471477.081 9224912.4, 5471918.45 922466...>, <POLYGON ((5210920.026 9679542.513, 5211178.057 9679299.384, 5211544.733 967...>, <POLYGON ((5461841.658 9532125.097, 5462316.978 9531935.718, 5462731.186 953...>, <POLYGON ((5573392.562 9515309.338, 5573650.593 9515045.507, 5574085.172 951...>, <POLYGON ((5314757.16 9674578.524, 5314621.354 9674220.568, 5314533.08 96738...>, <POLYGON ((5364170.109 9474581.161, 5364007.142 9474202.13, 5363749.111 9473...>, <POLYGON ((5448403.672 9177031.427, 5451248.804 9176820.544, 5451669.802 917...>, <POLYGON ((5267795.506 9685363.972, 5268182.552 9685343.712, 5268528.857 968...>, <POLYGON ((5317670.195 9244773.608, 5317412.164 9243360.539, 5324141.342 924...>, <POLYGON ((5385688.542 9548234.249, 5384140.355 9545407.587, 5384099.614 954...>, <POLYGON ((5466968.328 9493198.707, 5466404.734 9493340.809, 5465990.526 949...>, <POLYGON ((5451282.755 9546347.563, 5451438.932 9545826.858, 5451819.188 954...>, <POLYGON ((5288600.958 9568971.624, 5288757.135 9567666.804, 5288757.135 956...>, <POLYGON ((5426484.612 9231640.106, 5428786.52 9231327.524, 5432005.118 9230...>, <POLYGON ((5413637.381 9277311.401, 5413365.769 9276978.719, 5413114.528 927...>, <POLYGON ((5224459.867 9551324.538, 5224819.752 9551547.684, 5225220.38 9551...>, <POLYGON ((5539719.508 9546327.276, 5539393.574 9545908.007, 5538796.029 954...>, <POLYGON ((5354426.041 9320862.089, 5354880.991 9320644.994, 5355682.245 932...>, <POLYGON ((5324453.696 9481701.163, 5324603.082 9481342.472, 5324766.049 948...>, <POLYGON ((5490842.992 9591231.888, 5490632.493 9590887.174, 5490245.446 959...>, <POLYGON ((5449680.246 9277134.876, 5454032.823 9274493.727, 5453638.986 927...>, <POLYGON ((5202343.888 9663630.012, 5202459.323 9663069.389, 5203382.803 966...>, <POLYGON ((5447045.613 9483663.785, 5446665.357 9483860.044, 5446264.73 9483...>, <POLYGON ((5507662.543 9515065.802, 5507540.318 9513861.643, 5507499.576 951...>, <POLYGON ((5272209.195 9608763.387, 5271754.245 9608553.892, 5271387.57 9608...>, <POLYGON ((5287677.478 9421430.032, 5280432.238 9416315.932, 5280201.368 941...>, <POLYGON ((5394699.258 9223396.845, 5394420.856 9218197.405, 5394346.163 921...>, <POLYGON ((5244430.113 9519280.221, 5244341.84 9518948.757, 5244396.162 9518...>, <POLYGON ((5289198.504 9688963.416, 5290291.74 9688936.404, 5290848.544 9688...>, <POLYGON ((5414649.134 9362244.855, 5414880.004 9362034.689, 5415226.309 936...>, <POLYGON ((5538558.368 9344113.715, 5538028.726 9343767.855, 5537858.968 934...>, <POLYGON ((5510704.594 9577645.168, 5510412.611 9577388.286, 5509937.291 957...>, <POLYGON ((5388200.95 9249392.993, 5388071.934 9248917.486, 5388078.724 9248...>, <POLYGON ((5312760.814 9562291.83, 5312183.639 9562305.353, 5311592.884 9562...>, <POLYGON ((5493491.205 9590488.386, 5494102.332 9590258.575, 5494570.862 959...>, <MULTIPOLYGON (((5575096.925 9514686.967, 5575551.875 9514490.784, 5575972.8...>, <POLYGON ((5246976.473 9581390.159, 5242494.88 9581113.008, 5239880.618 9581...>, <POLYGON ((5408972.451 9547612.12, 5403913.684 9547747.366, 5405190.258 9546...>, <POLYGON ((5252632.785 9561182.991, 5252551.302 9560209.365, 5252985.88 9558...>, <POLYGON ((5278707.504 9661461.803, 5277227.22 9656051.237, 5276215.467 9655...>, <POLYGON ((5426484.612 9231640.106, 5423089.466 9232027.432, 5420264.705 923...>, <POLYGON ((5292634.391 9573082.025, 5292790.568 9572615.558, 5292994.276 957...>, <POLYGON ((5492323.275 9551615.303, 5489009.613 9551094.629, 5488649.728 954...>, <POLYGON ((5243540.585 9544535.225, 5243852.939 9544291.774, 5244185.663 954...>, <POLYGON ((5450929.66 9534803.402, 5451493.254 9534735.769, 5451805.608 9534...>, <POLYGON ((5300015.437 9527776.052, 5299770.987 9527566.372, 5299404.311 952...>, <POLYGON ((5514676.914 9548998.378, 5514384.932 9545772.759, 5514310.238 954...>, <POLYGON ((5492255.372 9483426.919, 5492615.258 9483196.821, 5493015.885 948...>, <POLYGON ((5236600.908 9572250.495, 5236308.925 9571851.628, 5236288.554 957...>, <POLYGON ((5497884.524 9459519.996, 5498319.103 9459310.133, 5498699.359 945...>, <POLYGON ((5614256.535 9485998.562, 5614609.63 9485748.169, 5615112.112 9485...>, <POLYGON ((5489518.885 9316119.748, 5489552.837 9315543.043, 5489552.837 931...>, <POLYGON ((5414649.134 9315549.827, 5414316.41 9315095.244, 5414167.023 9314...>, <POLYGON ((5316101.637 9428521.405, 5316889.311 9428521.405, 5317425.744 942...>, <POLYGON ((5263809.605 9470086.821, 5263877.508 9469511.472, 5264013.313 946...>, <POLYGON ((5470186.926 9255811.91, 5470220.877 9255356.838, 5470315.941 9254...>, <POLYGON ((5257127.958 9534424.657, 5257569.327 9533937.696, 5257256.974 953...>, <POLYGON ((5245469.028 9510654.974, 5245890.026 9510357.302, 5246657.329 950...>, <POLYGON ((5528569.85 9375029.753, 5528712.446 9374562.059, 5528461.205 9374...>, <POLYGON ((5365765.827 9595983.407, 5365996.697 9596415.967, 5366152.874 959...>, <POLYGON ((5598958.009 9478026.188, 5597993.788 9477816.378, 5588310.832 947...>, <POLYGON ((5500580.27 9570026.284, 5500376.561 9569546.28, 5500233.965 95688...>, <POLYGON ((5376188.924 9598896.387, 5376596.342 9598815.285, 5376800.051 959...>, <MULTIPOLYGON (((5394298.631 9645236.095, 5394020.229 9644871.293, 5393735.0...>, <POLYGON ((5445144.332 9504383.337, 5445232.606 9504038.281, 5445463.476 950...>, <MULTIPOLYGON (((5343935.041 9682264.18, 5343480.092 9682243.92, 5343113.416...>, <POLYGON ((5403642.072 9478161.549, 5401652.517 9477274.928, 5393076.379 947...>, <POLYGON ((5479306.287 9421531.633, 5478817.386 9420678.182, 5478484.662 942...>, <POLYGON ((5508097.122 9377117.391, 5507764.398 9376480.262, 5507289.077 937...>, <POLYGON ((5503180.951 9360190.622, 5503058.726 9359790.615, 5502834.646 935...>, <POLYGON ((5596289.424 9454916.421, 5595155.446 9450888.053, 5595067.172 945...>, <POLYGON ((5416747.334 9170167.069, 5422770.322 9168540.977, 5423327.126 916...>, <POLYGON ((5456945.858 9140922.917, 5456456.957 9141065.882, 5456022.378 914...>, <POLYGON ((5283189.096 9689969.622, 5282992.177 9689604.958, 5282713.775 968...>, <POLYGON ((5423490.093 9207817.323, 5423435.771 9207497.797, 5423225.272 920...>, <POLYGON ((5393789.359 9299521.884, 5393986.278 9299196.122, 5393857.262 929...>, <POLYGON ((5458684.173 9270867.879, 5458847.14 9270521.578, 5459261.347 9270...>, <POLYGON ((5549619.753 9437921.27, 5550088.283 9437521.734, 5551106.827 9437...>, <POLYGON ((5404103.812 9477186.942, 5403635.282 9476733.475, 5403743.926 947...>, <POLYGON ((5495915.339 9573156.389, 5495338.165 9573345.679, 5494903.586 957...>, <POLYGON ((5485050.873 9561108.617, 5484636.666 9560364.876, 5484134.184 956...>, <POLYGON ((5324419.744 9655666.206, 5325580.884 9654720.51, 5329627.897 9649...>, <POLYGON ((5269866.544 9653126.319, 5269988.77 9652633.196, 5270043.092 9652...>, <MULTIPOLYGON (((5295649.28 9628359.394, 5296287.568 9624008.047, 5296477.69...>, <POLYGON ((5487386.734 9199876.166, 5487685.506 9199407, 5487841.683 9198842...>, ...]
pd.Series([type(x) for x in brazil_municipalities_valid.geometry]).value_counts()
<class 'shapely.geometry.polygon.Polygon'> 5104 <class 'shapely.geometry.multipolygon.MultiPolygon'> 456 <class 'shapely.geometry.collection.GeometryCollection'> 12 Name: count, dtype: int64
# brazil.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='country', driver="GPKG")
# brazil_cities.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='cities', driver="GPKG")
# brazil_rivers.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='rivers', driver="GPKG")
# airports.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"),layer='airports', driver="GPKG")
# brazil_border.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='border', driver="GPKG")
# brazil_states.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='states', driver="GPKG")
# brazil_municipalities.to_file(os.path.join("maps","brazilMaps_5641_all.gpkg"), layer='municipalities', driver="GPKG")